29.2. systemd RHEL システムロールを使用した systemd ドロップインファイルのデプロイ


systemd は、他の場所からユニット用に読み取った設定にドロップインファイルを適用します。したがって、元のユニットファイルを変更せずに、ドロップインファイルを使用してユニット設定を変更できます。systemd RHEL システムロールを使用すると、ドロップインファイルのデプロイプロセスを自動化できます。

重要

このロールは、ハードコードされたファイル名 99-override.conf を使用して、ドロップインファイルを /etc/systemd/system/<name>._<unit_type>/ に保存します。保存先ディレクトリー内にあるこの名前の既存のファイルがオーバーライドされることに注意してください。

前提条件

手順

  1. systemd ドロップインファイルの内容を使用して Jinja2 テンプレートを作成します。たとえば、次の内容の ~/sshd.service.conf.j2 ファイルを作成します。

    {{ ansible_managed | comment }}
    [Unit]
    After=
    After=network.target sshd-keygen.target network-online.target

    このドロップインファイルは、元の /usr/lib/systemd/system/sshd.service ファイルと同じユニットを After 設定に指定します。さらに network-online.target も指定します。この追加のターゲットにより、ネットワークインターフェイスがアクティブ化されて IP アドレスが割り当てられた後に、sshd が起動します。これにより、sshd がすべての IP アドレスにバインドできるようになります。

    ファイル名には、<name>.<unit_type>.conf.j2 という命名規則を使用します。たとえば、sshd.service ユニットのドロップインを追加するには、ファイルに sshd.service.conf.j2 という名前を付ける必要があります。このファイルを Playbook と同じディレクトリーに配置します。

  2. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    ---
    - name: Managing systemd services
      hosts: managed-node-01.example.com
      tasks:
        - name: Deploy an sshd.service systemd drop-in file
          ansible.builtin.include_role:
            name: rhel-system-roles.systemd
          vars:
             systemd_dropins:
               - sshd.service.conf.j2

    サンプル Playbook で指定されている設定は次のとおりです。

    systemd_dropins: <list_of_files>
    デプロイするドロップインファイルの名前を YAML リスト形式で指定します。

    Playbook で使用されるすべての変数の詳細は、コントロールノードの /usr/share/ansible/roles/rhel-system-roles.systemd/README.md ファイルを参照してください。

  3. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  4. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

検証

  • ロールによって、ドロップインファイルが正しい場所に配置されたことを確認します。

    # ansible managed-node-01.example.com -m command -a 'ls /etc/systemd/system/sshd.service.d/'
    99-override.conf

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.systemd/README.md ファイル
  • /usr/share/doc/rhel-system-roles/systemd/ ディレクトリー
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.