
鏡像下載下傳、域名解析、時間同步請點選
阿裡巴巴開源鏡像站一、背景
Cromwell server 的啟動需要以下元件配合:
- 啟動 Mysql 的 docker 容器作為 Crowmell 的持久化資料庫,包括配置使用者名,密碼等
- 填寫 Cromwell 配置檔案,包括 BCS 後端配置及資料庫等配置
- 使用 Cromwell 的 jar 包,啟動 server
實際上 Cromwell 除了釋出 jar 包,也會釋出對應的 docker 鏡像,我們可以考慮使用 docker-compose來簡化以上步驟。docker-compose 是 Docker 官方的開源項目,其定位是定義和運作多個 Docker 容器的應用(Defining and running multi-container Docker applications)。
使用docker-compose 可以将容器化的 Cromwell 和 Mysql 兩個 service 拉起,作為一個應用來運作。再配合腳本來簡化配置,可以将 Cromwell 的服務做成一鍵啟停。
二、開通 ECS 作為 Crowmell server
首先使用
Cromwell server 鏡像開通一台 ECS,ssh 登入機器後,可以運作目錄下的cromwell-server.sh,進行Cromwell Server的管理:
1. # ./cromwell-server.sh
2. cromwell-server.sh - init cromwell config and start/stop service
3. Usage: cromwell-server.sh [options...] [init/start/stop/status]
4. Options:
5. --id=STRING Access id
6. --key=STRING Access key
7. --root=STRING Oss root ****for**** cromwell, e.g: oss://my-bucket/cromwell/
8. --instance=STRING default runtime: instance **type** [ecs.sn1.medium]
9. --image=STRING default runtime: image id [img-ubuntu-vpc]
三、第一次配置與啟動服務
初次使用,需要做一些初始配置,可以使用下面的指令完成一鍵初始化與啟動:
1. ./cromwell-server.sh init --id=LTAI8xxxxx --key=vVGZVE8qUNjxxxxxxxx --root=oss://gtx-wgs-demo/cromwell/
上面的指令完成了以下配置:
-
: 批量計算的 Access Id--id
-
: 批量計算的 Access Key--key
-
: Crowmell 運作時在 OSS 上的工作根目錄--root
-
: Cromwell 預設運作時參數,執行個體類型--instance
-
: Cromwell 預設運作時參數,鏡像ID執行完以上指令後,會根據 Crowmell 配置檔案模闆生成配置檔案,并通過 docker-compose 啟動 Cromwell server,并在背景運作。--image
服務啟動後,就可以通過鏡像中的指令行工具 widdler 執行工作流的送出:
1. **cd** /home/cromwell/cromwell/
2. widdler run echo.wdl inputs.json -o bcs_workflow_tag:test_echo
四、停止服務
使用下面的指令可以一鍵停止服務:
1. ./cromwell-server stop
五、再次啟動服務
在已經完成配置的情況下,使用下面的指令,可以完成服務啟動:
1. ./cromwell-server start
六、重新配置并啟動服務
如果需要修改配置,在服務停止的情況下,再次使用 init 指令可以完成新配置重新啟動:
1. ./cromwell-server.sh init --id=LTAI8xxxxx --key=vVGZVE8qUNjxxxxxxxx --root=oss://gtx-wgs-demo/cromwell/
七、使用option檔案設定預設運作時參數
在 Crowmell 的配置檔案中,可以設定每個 backend 的預設運作時參數 default-runtime-attibutes,也可以在送出工作流時通過 option 覆寫原有設定。
是以如果您在送出工作流時用到了資料盤、NAS等,都可以在 option 檔案中設定:
1. {
2. "default_runtime_attributes": {
3. "vpc": "192.168.0.0/24",
4. "autoReleaseJob": **true**,
5. "mounts": "nas://1f****04-xkv88.cn-beijing.nas.aliyuncs.com:/ /mnt/ true",
6. "dataDisk": "cloud_ssd 250 /home/mount/"
7. },
8. "bcs_workflow_tag": "Tagxxx",
9. "read_from_cache": **true**
10. }
使用 widdler 指令行的
-O
(大寫的O)參數送出 option 檔案:
1. widdler run echo.wdl inputs.json -O options.json
“ 提供全面,高效和穩定的系統鏡像、應用軟體下載下傳、域名解析和時間同步服務。”