Ansible:特定のホストに対してyum updateを行う
ansible 2.1.0.0にて。
特定のホスト、またはホストグループに対してyum -y update
を実行してみるメモ。
log01にのみsudo yum -y update
を実行したい場合を例として
hostsの例
$ cat hosts [app] app01 ansible_host=xxx.xxx.xxx.xxx [log] log01 ansible_host=xxx.xxx.xxx.xxx [vagrant] localvm ansible_host=localvm ansible_user=vagrant
shellコマンドを直接入力する方法
$ ansible log01 -b -a 'yum -y update' log01 | SUCCESS | rc=0 >> 読み込んだプラグイン:changelog, fastestmirror, security 更新処理の設定をしています Loading mirror speeds from cached hostfile * base: mirrors.cug.edu.cn * epel: mirrors.ustc.edu.cn * extras: mirrors.cqu.edu.cn * updates: centos.ustc.edu.cn 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package elasticsearch.noarch 0:2.3.4-1 will be 更新 ---> Package elasticsearch.noarch 0:2.3.5-1 will be an update ---> Package kibana.x86_64 0:4.5.3-1 will be 更新 ---> Package kibana.x86_64 0:4.5.4-1 will be an update --> 依存性解決を終了しました。 依存性を解決しました
-b
はbecomeオプション。sudo用です。
log01をlogとすればグループに対して実行可能です。
この方法ならyum update
にかぎらずいろんなことができますね。
yumモジュールを使う方法
$ ansible log01 -b -m yum -a "name=* state=latest" log01 | SUCCESS => { "changed": false, "msg": "", "rc": 0, "results": [ "Nothing to do here, all packages are up to date" ] }
こんな感じになります。
vulsで脆弱性チェックを行って、アップデートの必要があるhostとパッケージをちゃんと把握できている場合には積極的に使っていきたいです。楽です。
ansible始めるならおすすめです

- 作者: Lorin Hochstein,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/04/16
- メディア: 大型本
- この商品を含むブログ (2件) を見る