通常のアプリケーションスタックにはさまざまなソースのソフトウェアが必要なため、必要なシステムパッケージのインストールの自動化は、Ansibleプレイブックの一般的な運用タスクです。

aptモジュールは、UbuntuなどのDebianベースのオペレーティングシステム上のシステムパッケージを管理します。このガイド全体でリモートノードで使用しているディストリビューションです。 次のプレイブックはaptキャッシュを更新し、Vimがリモートノードにインストールされていることを確認します。

ansible-practiceディレクトリにplaybook-09.ymlという名前の新しいファイルを作成します。

  1. nano ~/ansible-practice/playbook-09.yml

次に、次の行を新しいプレイブックファイルに追加します。

〜/ 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に定義する必要があることです。 stateディレクティブのデフォルト値はpresentです。これにより、バージョンに関係なく、パッケージがシステムにインストールされます。 パッケージが存在しない場合はインストールされます。 パッケージの最新バージョンを確実に入手するには、代わりにlatestを使用できます。 これにより、aptは、要求されたパッケージが最新バージョンでない場合、要求されたパッケージを更新します。

このプレイブックを実行するときは、sudo権限が必要なため、-Kオプションを指定することを忘れないでください。

  1. ansible-playbook -i inventory playbook-09.yml -u sammy -K
Output
BECOME 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 を使用して、インストールするパッケージの名前を含む配列を指定できます。 次のプレイブックでは、パッケージvimunzip、およびcurlがインストールされ、最新バージョンになっていることを確認します。

Ansibleコントロールノードのansible-practiceディレクトリにplaybook-10.ymlという名前の新しいファイルを作成します。

  1. nano ~/ansible-practice/playbook-10.yml

次のコンテンツを新しいプレイブックファイルに追加します。

〜/ 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オプションを含めることを忘れないでください。

  1. ansible-playbook -i inventory playbook-09.yml -u sammy -K

次のような出力が表示されます。これは、同じタスクが、提供された異なる値vimcurl、およびunzipを使用して3回の反復を実行したことを示しています。

Output
BECOME 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オプションの使用方法など、システムパッケージの管理方法の詳細については、公式ドキュメントを参照してください。