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
値は省略できます。 docs からの目的:
Cache_valid_timeよりも古い場合、aptキャッシュを更新します。このオプションは秒単位で設定されます。
そのため、キャッシュが最近更新されたばかりのときにキャッシュを更新したくない場合に含めるのは良いことです。
これをアドホックコマンドとして実行するには、次を実行します。
$ ansible all -m apt -a "upgrade=yes update_cache=yes cache_valid_time=86400" --become
アドホックコマンドについて詳しく説明します here
--become
とbecome: true
を使用していることに注意してください。これは、Ansibleを介した典型的な特権エスカレーションの例です。 -u user
と-K
を使用します(特権エスカレーションパスワードを要求します)。どちらを使用してもかまいませんが、これは最も一般的なフォームを表示するためのものです。