0
0

More than 3 years have passed since last update.

ansibleでrundeckサーバを作ってみた

Posted at

前提条件

・使用するもの
 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を公開したいと思います。
ご覧いただきありがとうございました。

参考にさせていただいたもの

0
0
0

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
0
0