AnsiblePlaybookでシステムパッケージをインストールおよび管理する方法
通常のアプリケーションスタックにはさまざまなソースのソフトウェアが必要なため、必要なシステムパッケージのインストールを自動化することは、Ansibleプレイブックの一般的な運用タスクです。
The apt
モジュールは、UbuntuなどのDebianベースのオペレーティングシステム上のシステムパッケージを管理します。このガイド全体でリモートノードで使用しているディストリビューションです。 次のプレイブックは、 apt
キャッシュしてから、Vimがリモートノードにインストールされていることを確認します。
と呼ばれる新しいファイルを作成します playbook-09.yml
あなたの中で ansible-practice
ディレクトリ:
- nano ~/ansible-practice/playbook-09.yml
次に、新しいプレイブックファイルに次の行を追加します。
---
- hosts: all
become: yes
tasks:
- name: Update apt cache and make sure Vim is installed
apt:
name: vim
update_cache: yes
完了したら、ファイルを保存して閉じます。
が含まれていることに注意してください become
劇の冒頭の指示。 パッケージのインストールには管理システムのアクセス許可が必要なため、これが必要です。
パッケージの削除も同様の方法で行われます。唯一の変更点は、パッケージの状態を次のように定義する必要があることです。 absent
. The state
ディレクティブのデフォルト値は present
、バージョンに関係なく、パッケージがシステムにインストールされていることを確認します。 パッケージが存在しない場合はインストールされます。 パッケージの最新バージョンを確実に入手するには、次を使用できます。 latest
代わりは。 これは原因になります apt
最新バージョンでない場合は、要求されたパッケージを更新します。
提供することを忘れないでください -K
このプレイブックを実行するときのオプション。 sudo
権限:
- ansible-playbook -i inventory playbook-09.yml -u sammy -K
OutputBECOME password:
PLAY [all] **********************************************************************************************
TASK [Gathering Facts] **********************************************************************************
ok: [203.0.113.10]
TASK [Update apt cache and make sure Vim is installed] **************************************************
ok: [203.0.113.10]
PLAY RECAP **********************************************************************************************
203.0.113.10 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
複数のパッケージをインストールする場合は、 loop を使用して、インストールするパッケージの名前を含む配列を指定できます。 次のプレイブックは、パッケージを確認します vim
, unzip
、 と curl
インストールされ、最新バージョンになっています。
と呼ばれる新しいファイルを作成します playbook-10.yml
あなたの中で ansible-practice
Ansibleコントロールノードのディレクトリ:
- nano ~/ansible-practice/playbook-10.yml
次のコンテンツを新しいプレイブックファイルに追加します。
---
- hosts: all
become: yes
tasks:
- name: Update apt cache and make sure Vim, Curl and Unzip are installed
apt:
name: "{{ item }}"
update_cache: yes
loop:
- vim
- curl
- unzip
終了したら、ファイルを保存して閉じます。
次に、実行します ansible-playbook
前の例と同じ接続引数を使用し、忘れずに -K
このプレイブックには管理者権限が必要なため、オプション:
- ansible-playbook -i inventory playbook-09.yml -u sammy -K
次のような出力が表示されます。これは、同じタスクが、提供された異なる値を使用して3回の反復を実行したことを示しています。 vim
, curl
、 と unzip
:
OutputBECOME password:
PLAY [all] ***************************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************
ok: [203.0.113.10]
TASK [Update apt cache and make sure Vim, Curl and Unzip are installed] **************************************************************************
ok: [203.0.113.10] => (item=vim)
ok: [203.0.113.10] => (item=curl)
changed: [203.0.113.10] => (item=unzip)
PLAY RECAP ***************************************************************************************************************************************
203.0.113.10 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
パッケージの削除方法や高度な使用方法など、システムパッケージの管理方法の詳細については apt
オプションについては、公式ドキュメントを参照してください。