LoginSignup
6
7

More than 5 years have passed since last update.

RundeckをDockerで動かす(Rundeck+MariaDB+Nginx)

Last updated at Posted at 2018-07-16

はじめに

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以下)にダウンロードする。

$ 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を利用する設定にしているので、その他のメールサーバを利用する場合は適宜変更すること。

.env
# 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>にアクセスし、ログイン&コンソールが表示されたら完了。
FireShot Capture 12 - Rundeck - http___10.0.1.231_menu_home.png

6
7
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7