Ansible構築から実行まで
Ansible構築
1.EPEL追加
ansibleはEPELにあるらしい
EPEL(Extra Packages for Enterprise Linux)を追加する.
yum install epel-release
2.Ansible Install
yum install ansible
Ansible実行
1.localhost向けにpingテスト
ping moduleを使ってlocalhost向けに実行
[root@ansible ansible]# ansible -m ping localhost
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
-m:実行したいモジュール名を指定
2.remoteサーバ向けにpingテスト
事前にAnsible実行サーバとremote間でssh key接続を有効化する
下記参考に実施
SSH公開鍵認証で接続するまで
また、今回は検証環境のためRootUserでのLoginを許可
/etc/ssh/sshd_config
PermitRootLogin yes
config変更後プロセスRestart
systemctl restart sshd
あとfingerprintの確認が出るとAnsibleがコケるので以下変更
/etc/ansible/ansible.cfg
host_key_checking = False
hostsファイル編集
hostsファイルはAnsibleのplaybookやmoduleを実行する際に実行ノード情報を記載するファイル
インベントリファイルと呼ばれる
[]でホストグループを指定し、その下に対応するIPアドレスやFQDNを記載する
Ansibleのインベントリファイルを参考にしました
/etc/ansible/hosts
[parent]
192.168.0.220
[grafana]
192.168.0.202
[zabbix]
192.168.0.204
[parent:children]
grafana
zabbix
ようやく実行
[root@ansible ansible]# ansible -m ping grafana
192.168.0.202 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
[root@ansible ansible]# ansible -m ping zabbix
192.168.0.204 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
[root@ansible ansible]# ansible -m ping parent
192.168.0.202 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
192.168.0.204 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
192.168.0.220 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
3.playbook動作確認
playbook作成
今回は指定したホストグループで
wget/httpd/bash-completion/bind-utilsの
最新をinstallする
/etc/ansible/simple.yml
- hosts: parent
gather_facts: no
tasks:
- name: install modules
yum:
name: "{{ packages }}"
disable_gpg_check: no
state: latest
vars:
packages:
- wget
- httpd
- bash-completion
- bind-utils
hosts:インベントリファイルに記載されるホストグループ名を指定
tasks以下が実際の処理
name:task実行時の出力なので任意
yum:yum moduleを使用
yum-name:yum操作を行うpackages名 ※今回は変数で指定している
disable_gpg_check:パッケージの署名チェックを無効化
state:latest(最新ファイルをinstall) / absent(インストールされていない状態)
実行
[root@ansible ansible]# ansible-playbook -i hosts simple.yml
PLAY [parent] ***********************************************************************************************************************************************************************
TASK [install modules] **************************************************************************************************************************************************************
ok: [192.168.0.204]
ok: [192.168.0.202]
ok: [192.168.0.220]
PLAY RECAP **************************************************************************************************************************************************************************
192.168.0.202 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.0.204 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.0.220 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Author And Source
この問題について(Ansible構築から実行まで), 我々は、より多くの情報をここで見つけました https://qiita.com/zo-san/items/3e5c963c81226e36272f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .