ラベル ansible の投稿を表示しています。 すべての投稿を表示
ラベル ansible の投稿を表示しています。 すべての投稿を表示

2018年4月28日土曜日

ansible で yum update を実行

ansible を使って CentOSのアップデートを実行します。
一台だけだと、ansibleでやる必要性は感じないけど、対象が沢山ある時には便利かも。

[root@centos7 ansible]# ansible -i production cent7-1 -m yum -a "name='*' update_cache=yes state=latest"
[root@centos7 ansible]# ansible -i production cent7-1 -m shell -a "shutdown -r now"
cent7-1 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Shared connection to 192.168.1.80 closed.\r\n",
    "unreachable": true
}
[root@centos7 ansible]# ansible -i production cent7-1 -m ping
cent7-1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[root@centos7 ansible]#

  • アップデートを実行
  • システム再起動
  • ansible pingで稼働を確認


システム起動後の動作確認をansibleで

沢山のサーバを起動したあと、すべてのサーバにログインして確認コマンドを打つのは大変なので、ansibleで一括で実行してみます。

コマンドはこんな感じ
[root@centos7 ansible]# ansible -i production common-servers -m shell -a "ntpq -p"
cent7-1 | SUCCESS | rc=0 >>
     remote           refid      st t when poll reach   delay   offset  jitter 
==============================================================================
+cbr-jp-1.dn42.e 133.243.238.163  2 u   22   64  377    8.398   11.943   7.764
*date.no-such-ag 103.1.106.69     2 u   25   64  377    7.369   11.609   5.619
-b.hnd.pobot.net 71.80.83.115     2 u   35   64  377    9.420    6.175   4.915
+extendwings.com 133.243.238.164  2 u  101   64  376   11.825   12.024  40.148

cent7-2 | SUCCESS | rc=0 >>
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp1.jst.mfeed. 133.243.236.17   2 u  125  128  377    7.749    0.235   0.327
*ntp2.jst.mfeed. 133.243.236.17   2 u   32  128  377    7.388   -0.415   0.900

[root@centos7 ansible]#
 やっぱり、ansible便利だな~


ちなみに、インベントリ"-i"で指定している production ファイルはこんな感じに対象サーバを登録しています。
[common-servers]
cent7-2 ansible_host=192.168.1.82
cent7-1 ansible_host=192.168.1.80
[all:vars]
ansible_ssh_port=22
ansible_ssh_user=user02
ansible_ssh_pass=************

ansible_become=yes
ansible_become_pass=************

2017年12月9日土曜日

Ansibleで OS再起動後も task(playbook)を続ける

CentOSで  
yum: name='*' update_cache=yes state=latest
の後に再起動をしたくて、方法を探してました。
ググると、すぐにいくつかの方法が見つかるんだけど、こんなエラーが出てうまく動かせなかった。

TASK [common : restart system] *************************************************
fatal: [cent7-2]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Shared connection to 192.168.1.82 closed.\r\n", "unreachable": true}

その時の task の書き方がこんな感じ

- name: restart system
  command: shutdown -r now "Ansible triggered"
  async: 0
  poll: 0
  ignore_errors: true 
- name: wait for server to comeback
  local_action: wait_for host={{ inventory_hostname }} state=started delay=30 timeout=300 
で、問題を解決するため、さらに探して見つかった方法がこれ

https://stackoverflow.com/questions/29955605/how-to-reboot-centos-7-with-ansible
- name: restart system
  shell: |
    set timeout 10
    nohup bash -c "sleep 2s && reboot" &
- name: wait for server to comeback
  local_action: wait_for host={{ inventory_hostname }} state=started delay=30 timeout=60
- name: wait for comeback
  wait_for_connection:
    delay: 30
    timeout: 600

とりあえず、いい感じに動いてくれてます。

環境は
ansibleサーバ、ターゲットサーバ共に CentOS7.4
ansibleは ansible-2.4.1.0-1.el7.noarch