###前提条件
・使用するもの
AWSアカウント
EC2(Amazon Linux)
・2台構成とし、以下の呼び方とする
Ansibleサーバ:AnsibleがインストールされているEC2
rundeckサーバ:rundeckをインストールさせたいただのEC2(ansibleコマンドにてrundeckがインストールされる予定)
##大まかな流れ
上記を実施する為の大まかな流れは以下の通り
⑴ansibleサーバの準備
⑵ansibleのファイル構成を考えて作成
⑶ansible-playbookコマンドの実行=rundeckインストール
###手順⑴
①ansibleサーバを作るべく、ansibleをインストールする
# sudo amazon-linux-extras install ansible2 ⇦インストールする
# ansible --version ⇦バージョンを確認する
②公開鍵を作成する
# cd /home/ec2-user/.ssh ⇦ディレクトリを移動する
# ssh-keygen -t rsa ⇦公開鍵を作成する
③作成した公開鍵をrundeckサーバへコピーする
# ssh-copy-id ec2-user@rundeckサーバのIPaddress
④ansibleサーバからrundeckサーバへログインできることを確認する
# ssh ec2-user@rundeckサーバのIPaddress
###手順⑵
ここから作業は作成したansibleサーバ内で行います。
①iventory.iniファイルを作成する
# iventory.ini
[rundeck_servers]
rundeckサーバのIPアドレス
②main.ymlを作成する
# main.yml
---
- hosts: rundeck_servers
become: yes
tasks:
- include_tasks: rundeck.yml
③propertiesファイルを作成する
# rundeck-config.properties.txt
#loglevel.default is the default log level for jobs: ERROR,WARN,INFO,VERBOSE,DEBUG
loglevel.default=INFO
rdeck.base=/var/lib/rundeck
#rss.enabled if set to true enables RSS feeds that are public (non-authenticated)
rss.enabled=false
# change hostname here
grails.serverURL=http://rundeckサーバのIPアドレス:4440 ⇦作成したrundeckサーバのIPアドレスを指定して記載
# framework.properties.txt
# framework.properties -
#
# ----------------------------------------------------------------
# Rundeck server connection information
# ----------------------------------------------------------------
framework.server.name = localhost
framework.server.hostname = localhost
framework.server.port = 4440
framework.server.url = http://rundeckサーバのIPアドレス:4440 ⇦作成したrundeckサーバのIPアドレスを指定して記載
# ----------------------------------------------------------------
# Installation locations
# ----------------------------------------------------------------
④rundeck.ymlを作成する
---
- name: Install java
yum:
name: java
state: present
- name: get a repository
yum:
name: http://repo.rundeck.org/latest.rpm
state: present
- name: Install rundeckd
yum:
name: rundeck
state: present
- name: create directory
file:
path: /var/lib/rundeck/lib
state: directory
owner: rundeck
mode: 0755
- name: install wget
yum: name=wget state=installed
- name: install JDBC ⇦mysqlと紐付けを実施したい場合は配置する必要がありました
get_url:
url: https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.23/mysql-connector-java-8.0.23.jar
dest: /var/lib/rundeck/lib
- name: enable and start rundeckd
systemd:
name: rundeckd
enabled: yes
state: started
- name: Install rundeck-cli
yum:
name: rundeck-cli
state: present
- name: Set a hostname
ansible.builtin.hostname:
name: rundeck
- name: restart rundeckd
systemd:
name: rundeckd
state: restarted
- name: copy rundeck-config.properties
copy:
src: /home/ec2-user/roles/rundeck/templates/rundeck-config.properties.txt
dest: /etc/rundeck/rundeck-config.properties
backup: no
- name: copy framework.properties
copy:
src: /home/ec2-user/roles/rundeck/templates/framework.properties.txt
dest: /etc/rundeck/framework.properties
backup: no
###手順⑶
①ansible-playbook コマンドを実行する
# ansible-playbook -i iventory.ini main.yml --ask-become-pass
※「--ask-become-pass」を付けないとsudo権限がなく実行出来ないとのエラー発生したので必要でした。
次回はmysqlとの紐付けをしたymlを公開したいと思います。
ご覧いただきありがとうございました。
###参考にさせていただいたもの
http://serverarekore.blogspot.com/2018/09/ansiblerundeckmariadbubuntu1804.html