#はじめに
Rundeckをコンテナ化、更にNginxとMariaDBのコンテナも同時に作成するDocker Compose
を公開します。
基本的に下記の手順で進めていけば、単一ノード上に3つのコンテナが作成され、Rundeckを利用できるようになると思います。
#要件
-
docker
がインストール、サービスが起動されている -
docker-compose
がインストールされていて、sudo
せず実行できる
前準備
##systemd対応コンテナイメージ作成 ※2019/1/3 削除
Rundeck、Nginxコンテナのベースとなる、systemdに対応したCentOS7コンテナイメージを作成する。
###Dockerfile作成
適当な場所に、下記内容のDockerfileを作成する。
~~```dockerfile:Dockerfile
FROM centos:7
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in ; do [ $i ==
systemd-tmpfiles-setup.service ] || rm -f $i; done);
rm -f /lib/systemd/system/multi-user.target.wants/;
rm -f /etc/systemd/system/.wants/;
rm -f /lib/systemd/system/local-fs.target.wants/;
rm -f /lib/systemd/system/sockets.target.wants/udev;
rm -f /lib/systemd/system/sockets.target.wants/initctl;
rm -f /lib/systemd/system/basic.target.wants/;
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
###~~イメージのビルド~~
~~```bash
$ docker build --rm -t local/c7-systemd .
```~~
###~~イメージ確認~~
~~`local/c7-systemd`という名前でイメージが作成されているか確認~~
~~```bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
local/c7-systemd latest 3a8a2fd24810 19 seconds ago 200MB
```~~
# Rundeck、MariaDB、Nginxのコンテナ作成
### ファイルのダウンロード
GitHubから`Rundeck for Docker`のファイル一式を、ローカルマシンの任意の場所(今回はディレクトリ`rundeck-service`以下)にダウンロードする。
```bash
$ git clone https://github.com/k-nagase/docker-rundeck.git
ちなみにダウンロード後は、以下のようにディレクトリ、ファイルが展開される。
.
├── .env
├── docker-compose.yml
├── nginx/
│ ├── Dockerfile
│ └── conf.d/
│ └── default.conf
├── rundeck/
│ ├── Dockerfile
│ └── groovy/
│ └── rundeck-config.groovy
└── data/ ←Runeck, MariaDBのデータ永続化用(setup.sh実行時に作成され、コンテナ側から保存される)
環境変数の設定変更
docker-compose
が参照する環境変数定義ファイル.env
の内容を、自身の環境に合わせて適宜変更する。
尚、※
印が付いている変数は変更必須。
また送信メールサーバはGmail
を利用する設定にしているので、その他のメールサーバを利用する場合は適宜変更すること。
# for Rundeck
JAVA_VERSION=1.8.0
RUNDECK_HOST_NAME=rundeck.example.com #Rundeckホスト名orIPアドレス(※)
RUNDECK_PORT=4440 #Rundeckポート番号
RUNDECK_REPO=http://repo.rundeck.org/latest.rpm #Rundeck公式リポジトリのURI
RUNDECK_VERSION=2.11.8-1.59.GA #Rundeck 2系の最新バージョンを指定 →https://docs.rundeck.com/download/rpm/
# for MariaDB
MYSQL_ROOT_PASSWORD=password #MariaDBのRootパスワード(※)
MYSQL_DATABASE=rundeck #Rundeckの接続データベース
MYSQL_USER=rundeck #Rundeckの接続ユーザー名
MYSQL_PASSWORD=password #Rundeckの接続パスワード(※)
# Mail Sender for Rundeck
SMTP_HOST=smtp.gmail.com #送信用メールサーバ
SMTP_PORT=465 #SMTPポート番号
SMTP_USERNAME=hoge@gmail.com #SMTP-AUTHユーザー名(※)
SMTP_PASSWORD=p@ssw0rd #SMTP-AUTHパスワード(※)
SMTP_PROPS=\"mail.smtp.auth\":\"true\",\"mail.smtp.socketFactory.port\":\"${SMTP_PORT}\",\"mail.smtp.socketFactory.class\":\"javax.net.ssl.SSLSocketFactory\",\"mail.smtp.socketFactory.fallback\":\"false\" #その他のSMTPプロパティ
コンテナのビルド
setup.sh
を実行して、コンテナをビルド&起動する。
$ chmod +x setup.sh
$ ./setup.sh
コンテナ起動確認
app
(rundeck
)、db
(mariadb
)、web
(nginx
)の各コンテナが起動(State=Up
)していることを確認
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------
rundeck-service_app_1 /usr/sbin/init Up 0.0.0.0:4440->4440/tcp
rundeck-service_db_1 /docker-entrypoint.sh mysq ... Up 0.0.0.0:3306->3306/tcp
rundeck-service_web_1 /usr/sbin/init Up 0.0.0.0:80->80/tcp
イメージ確認
上記コンテナと同様に、イメージが作成されていることを確認
$ docker-compose images
Container Repository Tag Image Id Size
----------------------------------------------------------------------------
rundeck-service_app_1 rundeck-service_app latest 151baafbe0da 510 MB
rundeck-service_db_1 centos/mariadb latest 031e35c33d3b 378 MB
rundeck-service_web_1 rundeck-service_web latest b233183eb096 259 MB
アクセス
ブラウザから http://<RUNDECK_HOST_NAME>
にアクセスし、ログイン&コンソールが表示されたら完了。