Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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エントリの校正版です

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away