LoginSignup
1
1

More than 5 years have passed since last update.

ansibleコマンドで特定のホストに対してyum updateを行う

Posted at

ansible 2.1.0.0にて動作確認。

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

上記架空のhostsに於いて、log01にのみsudo yum -y updateを実行したい場合を例として記述します

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モジュールを使う方法

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

こんな感じになります。

私は限定的に利用しています

本番サーバーのパッケージを確認無しでアップデートするのは危ないので。

CVE情報からサーバーの脆弱性をスキャンできるツールVuls(バルス) - ログってなんぼ@新館

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

※この記事は個人blogエントリの校正版です

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