現在のプロジェクトでは、開発環境の初期構築にAWX(Docker Compose版)を使っているのですが(私しか使ってませんが)、どうしてもバージョンアップしたかったので頑張ってやってみました。
調べてもあまり出てこなかったので、これが正しいやり方なのかはわかりませんが残しておきます。
今のところ問題なく動いているように見えますが、自己責任でお願いします。
例によってコマンドのサンプルなどは載せません。
面倒だからではなく、契約上ダメそうなので。
※使わないのに個人用の環境を構築するのは面倒ってのもありますが。
流れを1行で書くと、対象のバージョンのtar.gzで上書きして、install.ymlを実行し、初回構築時の設定を再度行う、といった感じです。
環境
- CentOS 7.6(仮想マシン)
- AWX 4.0.0 ⇒ 11.1.0(Docker Compose版)
- Ansible 2.7.x ⇒ 2.9.5(AWXコンテナ内のAnsible)
背景
Ansibleの2.8以上が使いたかったのです。
ADのDNSをいじれるモジュールや、VMware Toolsをバージョンアップできるモジュールなどが追加されているようなので。
AWXは別にバージョンアップしなくてもよかったので、先にコンテナ内のAnsibleだけpipでアップデートしてみたのですが、PlaybookをAWXから実行してみるとWarningが出るようになり、解決も難しそうだったので、泣く泣くAWXもバージョンアップすることにしました。
詳細な流れ
- tower-cliでAWXのバックアップを取得する
- 一応以下のようなコマンドで取得しましたが、使ってないので戻せるかわかりません
- tower-cli receive –all > awx_backup.json
- 一応以下のようなコマンドで取得しましたが、使ってないので戻せるかわかりません
- OS停止して仮想マシンのスナップショットを取る
- OS起動してAWXを停止する
- AWXディレクトリのコピーを取っておく
- 11.1.0のtar.gzをダウンロードして、AWXディレクトリに上書きコピーする
- installerディレクトリのinventoryファイルを初回構築時と同じように修正する
- install.ymlを実行する
- ansible-playbook -i inventory install.yml
- 上記で新しいバージョンのAWXが起動してDBデータなども移行されている
- 必要であれば初回構築時に実施した設定などを再度行う
- 各種バックアップファイルや古いコンテナイメージが不要であれば削除する
特記事項
install.ymlがバージョンアップに対応
以下にあるようにinstall.ymlを実行すれば、勝手にバージョンアップしてくれました。
PostgreSQLのhba.confの設定をデフォルトからいじっていたのですが、どうやらこれもいい感じに移行してくれてました。
docker-compose.ymlは再度修正が必要
自動でバージョンアップしてくれるとはいえ、docker-compose.ymlはいい感じに移行されませんでした。
これはもしかすると私がDocker ComposeディレクトリをAWXディレクトリ直下に置いていたからかもしれませんが、深追いはしません。
RabbitMQが使われなくなって、Redisが使われるようになったことが影響してるのかもしれませんが、どちらのミドルウェアもよく知らないし、これも深追いはしません。
コンテナ内の独自設定も再度行う必要がある
当たり前だと思いますが、コンテナ内で独自に追加した設定、たとえばawx_taskコンテナへのnslookupコマンドの追加などは、再度実施する必要があります。
ssh鍵の作成や登録も必要ですね。
Gitのpullでファイルを上書きする方法がわからない
初回はcloneして構築したのですが、バージョンアップ時にtagでバージョンを指定して、かつコミットしてない修正がローカルに残っている状態で、上書きpullする方法がわかりませんでした。
これは自分がGitに詳しくないからだと思うのですが、調べても出てこなかったので直接tar.gzを上書きコピーする方式にしました。
コンソール画面の設定ページが表示されない
バージョンアップ後に左ペインの「設定」をクリックしても応答がない状態になりました。
awx_webコンテナのログを見て調べたところ、以下と同じっぽかったので、下の方に書かれてるchownを実行したら解決しました。
最後に
あまり情報がない中で震えながらやりました。
私がコンテナをあまり使ってないのもあるかもしれませんが、AWXは難しいですね。
※壊しても私しか使ってないのでアレですが。
他にもAWXをバージョンアップした方がいらっしゃいましたら、ネットに情報を残していただけると、私が震えずに済みますので、どうかよろしくお願いします。
それでは。
コメント