1. ホーム
  2. ansible

[解決済み] Ansibleシェルでapt updateとupgradeを実行する方法

2022-03-05 01:55:12

質問

Ansibleを使って、以下の2つのコマンドを実行しようとしています。

sudo apt-get update && sudo apt-get upgrade -y

ansibleで使えるのは知っています。

ansible all -m shell -u user -K -a "uptime"

以下のようなコマンドを実行すればいいのでしょうか?それとも、ある種の raw コマンド

ansible all -m shell -u user -K -a "sudo apt-get update && sudo apt-get upgrade -y"

解決方法は?

Ansibleには、この目的のために設計されたaptモジュールがあるので、このためにシェルを使うことはお勧めしません。aptの使い方は以下に詳しく書いています。

プレイブックでは、このようにアップデートとアップグレードを行うことができます。

- name: Update and upgrade apt packages
  become: true
  apt:
    upgrade: yes
    update_cache: yes
    cache_valid_time: 86400 #One day

cache_valid_time の値は省略可能です。その目的は ドキュメント :

cache_valid_timeより古い場合、aptキャッシュを更新します。この オプションは秒単位で設定されます。

そのため、キャッシュが最近更新されたばかりである場合に、更新を行わないようにしたい場合に含めるとよいでしょう。

これをアドホックに行うには、コマンドを実行します。

$ ansible all -m apt -a "upgrade=yes update_cache=yes cache_valid_time=86400" --become

アドホックコマンドの詳細 こちら

を使っていることに注意してください。 --becomebecome: true . これは、Ansibleによる典型的な権限昇格の例である。あなたは -u user-K (権限昇格のパスワードを要求する)。これは、最も一般的な形式を示しただけですので、あなたのために働くものを使用してください。