27.3. systemd RHEL システムロールを使用した systemd システムユニットのデプロイ
カスタムアプリケーション用のユニットファイルを作成すると、systemd はそれを /etc/systemd/system/ ディレクトリーから読み取ります。systemd RHEL システムロールを使用すると、カスタムユニットファイルのデプロイを自動化できます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。
手順
カスタム systemd ユニットファイルの内容を使用して Jinja2 テンプレートを作成します。たとえば、次のように、サービスの内容を含む
~/example.service.j2ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイル名には、
<name>.<unit_type>.j2という命名規則を使用します。たとえば、example.serviceユニットを作成するには、ファイルにexample.service.j2という名前を付ける必要があります。このファイルを Playbook と同じディレクトリーに配置します。次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.systemd/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
サービスが有効になっていて起動していることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow