Ansible を使用して rpm/deb パッケージを更新する


目的

SIDfmVM には、ホストの rpm/deb パッケージを更新するための Ansible Playbook を生成する機能があります。 このドキュメントでは、その機能で生成した Ansible Playbook を使用し、ホストの rpm/deb パッケージを最新版に更新する手順を示します。

前提条件

Playbook を生成する

インベントリを作成する (初回または必要に応じて)

インベントリとは、Ansible の操作対象となるホストやそれらのグループを列挙したファイルのことです。 このインベントリに定義されたホストやホストグループは、Ansible の Playbook やアドホックコマンドを実行する際に参照されます。 インベントリにはホストやホストグループに関する変数 (ホスト変数/グループ変数) を設定したり、ホストへの接続に使用するユーザを指定することも可能です。

SIDfmVM において生成した Playbook を実行するために、インベントリに対象となるホストを追加します。

  1. Ansible コントロールノードに Ansible を使用するユーザでログインします。

  2. インベントリファイルを作成あるいは編集します。

    ※ Ansible を dnf/yum/apt コマンドを使用してパッケージからインストールした場合、/etc/ansible/hosts にインベントリファイルが作成されます。 しかしながら、プロダクション環境とテスト環境でインベントリファイルを分けることなどを考慮して、新たにインベントリファイルを作成することをお勧めします。

    エディタで hosts という名前のファイルを作成してください。既に hosts を作成している場合は、既存のファイルを開いてください。

    $ vi hosts
  3. グループを作成します。(設定する際には適切な値を設定してください。)

    [example_group]
  4. グループにホストを追加します。

    ここに追加するホスト名は、Playbook の hosts: 項目と一致させてください。 逆に、お客様にとって都合のよい値をインベントリにホストとして登録し、生成した Playbook の hosts: 項目をそれに合わせる形でも問題ございません。

    hosts ファイル:

    [example_group]
    hostname0
    hostname1

    生成した Playbook (yum):

    - name: update rpm packages
      hosts: hostname0
     
      tasks:
        - name: yum update
          yum:
            name:
    (以下略)

    生成した Playbook (apt):

    - name: update deb packages
      hosts: hostname1
     
      tasks:
        - name: apt upgrade
          apt:
            name:
    (以下略)
  5. 保存後、閉じます。

    編集後の hosts ファイル:

    [example_group]
    hostname0
    hostname1

Playbook を実行する

  1. Ansible コントロールノードに Ansible を使用するユーザでログインします。

  2. 生成した Playbook を Ansible コントロールノードにコピーします。

  3. Playbook を実行します。

    $ ansible-playbook -i hosts ansible_playbook_for_update_packages_on_host0.yml

    状態が Failed になった場合は、何らかの原因で処理に失敗しています。 「Ansible をインストールする - トラブルシューティング」 を参照の上、原因を修正し、再度 Playbook を実行してください。

注意事項

プロダクション環境に対して Playbook を実行する前に必ずテスト環境でお試しください

SIDfmVM から生成されたパッケージ更新のための Ansible Playbook は、更新されたパッケージやそれらのパッケージを利用するアプリケーションが正常に動作することを保証するものではありません。

Playbook によるパッケージ更新に伴い、アプリケーションやサービスが正常に動作しなくなる可能性や、プロセスが再起動する可能性があります。 このため、プロダクション環境に対して Playbook を実行する前に、必ずテスト環境で試行し、Playbook 実行後の挙動をご確認ください。