ログってなんぼ

エンジニアのメモです

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"
    ]
}

こんな感じになります。

okisanjp.hatenablog.jp

vulsで脆弱性チェックを行って、アップデートの必要があるhostとパッケージをちゃんと把握できている場合には積極的に使っていきたいです。楽です。
ansible始めるならおすすめです

初めてのAnsible

初めてのAnsible