RHEL System Roles を Ansible Automation Platform から利用する

レッドハットの杉村です。Ansible のテクニカルサポートをしています。

RHEL の設定変更を Ansible から容易にできるようにするための RHEL System Roles について、以前のブログで紹介されていました。

rheb.hatenablog.com

Ansible Automation Platform からこの System Roles を利用しようとすると、せっかく便利に使いたいと思っているのに見つけられないというエラーになってしまいます。

例えばこのようなプレイブックを書いたとします。

---
- hosts: all
  gather_facts: false
  become: true

  vars:
    timesync_ntp_servers:
      - hostname: foo.example.com
        iburst: true
      - hostname: bar.example.com
        iburst: true
      - hostname: baz.example.com
        iburst: true

  roles:
    - linux-system-roles.timesync

プロジェクトとジョブテンプレートを作成して実行すると、このようにエラーとなってしまいました。

Ansible Automation Platform ではコンテナイメージとして用意された実行環境 (Execution Environment) を使って Ansible のコマンドを実行するのですが、標準で提供するコンテナイメージの中には System Roles のパッケージはインストールされていないため、controller の OS にインストールしてあっても参照することができないためにエラーとなってしまいます。

ERROR! the role 'linux-system-roles.timesync' was not found in /runner/project/roles:/runner/requirements_roles:/home/runner/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/runner/project

この実行環境についてはこちらの記事もご覧ください。

rheb.hatenablog.com

このコンテナは Podman を使って実行します。Podman にはコンテナ外のディレクトリをマウントして参照できる設定があり、これを Ansible Automation Platform でも利用することができます。以前はこの設定は単に参照させるために使われたものではあったのですが、Ansible Automation Platform 2.1.2 以降からはオーバーレイマウント(上書き)のためにも設定できるようになりました。

設定 → ジョブ設定 → 分離されたジョブに公開するパス にこの行を追加します。

  "/usr/share/ansible/roles/:/home/runner/.ansible/roles:O",
  "/usr/share/ansible/collections/:/home/runner/.ansible/collections:O"

初期値としては2行入っていますので、カンマ区切りで追加して保存してください。

再度ジョブテンプレートを実行すると、今度は成功します。

もしコントローラが1台ではなくクラスタになっているようなときは、それぞれのコントローラで System Roles のパッケージをインストールしてください。

$ sudo su - 
# dnf install rhel-system-roles

簡単ではありますが RHEL System Roles の使い方について紹介しました。

Ansible はクラウドリソースやネットワーク機器の扱いが多くなっているように感じておりまして、RHEL を直接設定していくという機会は減ってきているようには思いますが、System Roles は力を入れて開発が進められていますのでご活用いただけましたら幸いです。

Ansible Automation Platform の評価ライセンスリクエストはこちらからご利用いただけます。60日間利用できます。

www.redhat.com

Happy Automation!

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。