3.0.0 -> 4.0.0 へのアップグレードをしたので覚書
インストール方法は release ページからファイルを落としてきて local_docker
流れとして
1. バックアップ
2. 現環境を壊す
3. 新しいバージョンの AWX で環境を作る
4. バックアップから復元
このやり方が公式のやり方。
直接インプレースでやる方法はない。
前準備:tower-cli を入れる
$ pip install --upgrade ansible-tower-cli $ tower-cli config host http://<old-awx-host.example.com> $ tower-cli config username <user> $ tower-cli config password <pass>
1. バックアップを取る
postgreSQL の datadir のバックアップじゃなくて、tower-cli を通すことでインポートするときにマイグレーションしてくれるっぽい
$ tower-cli receive --all > assets.json
2. 現環境の破壊
docker なら
# docker rm -f $(docker ps -aq) と、Web のアセットたちを消す。 # cd awx-3.0.0 && make clean-ui
3. 新しいバージョンの AWX を入れる
お好きなやつで
4. インポート
$ tower-cli send assets.json
Inventory のインポートに失敗するけどちゃんとインポートできてる。
INVENTORY [stg] ********************************************************************************************************************************************** Asset up to date Unable to create inventory_source named (stg - 11) : The Tower server claims it was sent a bad request. POST http://awx.hogehoge/api/v2/inventory_sources/ Params: None Data: {"source": "file", "source_path": "/var/lib/awx/projects/_6__hoge/inventories/stg", "name": " (stg - 11)", "inventory": 4} Response: {"detail":["Cannot set source_path if not SCM type."]} Schedules are up to date All inventory host are up to date All inventory groups are up to date All roles are up to date
インポート後はジョブの履歴等まで残っていなかったけど動作(Play)するのに必要なものは全部インポートされている。