Docker Compose で AWX + Gitea 環境を作る


はじめに

AWX は Docker Compose によるインストール方法をサポートしています。ただ、docker-compose.yml を用意して docker-compose コマンドを実行するのではなく、ansible-playbook コマンドを使用する方法になっています。何故 docker-compose コマンドを使用しないのでしょうか?

また、AWX だけ準備できてもソースコードリポジトリのコンテナが無いと、Github 等の既存のサービスが必要です。環境次第では何らかのソースコードリポジトリをデプロイする必要があるでしょう。個人的には Github クローンの1つ、Giteaがお勧めです。Go 言語で開発されており、GitLab より高速に動作します。

無いなら作ってしまいましょう、という事で、docker-compose.yml を用意するシェルスクリプトを作成しました。もっと良い方法があるのかも知れません。あればコメント欄で教えてください。

準備

  1. docker-compose パッケージをインストールします。
  2. docker サービスを起動します。
  3. こちら からシェルスクリプトをダウンロードします。
  4. シェルスクリプトの冒頭にある変数を適切に変更します。
  5. シェルスクリプトを実行して docker-compose.yml を作成します。
   $ bash gen-dc-awx-gitea.sh
  1. docker-compose コマンドを実行します(1回目)
   $ sudo docker-compose up

各コンテナの実行ログがコンソール上に表示されます。そのうち、AWX 用の DB マイグレーションが実行されるので、マイグレーションが終わるまで待ちます。
7. CTRL-C で一旦実行を止めます。
8. docker-compose コマンドを実行します(2回目)

   $ sudo docker-compose up -d

後はサービスにアクセスするだけです。

使用

デフォルトでは、以下のポートが使用されます。

  • 443/TCP:AWX WebUI (HTTPS)
  • 8443/TCP: Gitea WebUI (HTTPS)
  • 10022/TCP: Gitea Git (SSH)

Gitea 画面の右上の sign-in をクリックすると、初回はサーバのセットアップ画面になります。デフォルト値は事前に docker-compose.yml で設定済みなので、ほとんど設定値を変更する必要はありませんが、管理者アカウントを追加するのであればこの画面で設定します。

利用上の注意

  • AWX から見て Gitea のホスト名は gitea になります。ですので、AWX のプロジェクト登録時に Gitea 上の Git リポジトリを入力する際、URL のホスト名部分は Gitea の FQDN ではなく gitea にする必要があります。