搜索

28.2. 使用 systemd RHEL 系统角色部署 systemd 置入文件

download PDF

systemd 在设置之上应用置入文件,从其他位置读取这个单元。因此,您可以使用置入文件修改单元设置,而无需更改原始单元文件。通过使用 systemd RHEL 系统角色,您可以自动部署置入文件。

重要

该角色使用硬编码的文件名 99-override.conf 将置入文件存储在 /etc/systemd/system/ <name> ._&lt;unit_type>/ 中。请注意,它会在目标目录中使用此名称覆盖现有文件。

先决条件

流程

  1. 使用 systemd 置入文件内容创建 Jinja2 模板。例如,使用以下内容创建 ~/sshd.service.conf.j2 文件:

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

    此置入文件在 After 设置中指定与原始 /usr/lib/systemd/system/sshd.service 文件相同的单元,以及 network-online.target 文件。使用这个额外目标,sshd 会在网络接口激活并分配 IP 地址后启动。这样可确保 sshd 可以绑定到所有 IP 地址。

    对文件名使用 <name > . <unit_type > .conf.j2 convention。例如,要为 sshd.service 单元添加一个 drop-in,您必须将文件命名为 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

验证

  • 验证角色是否将 drop-in 文件放在正确的位置:

    # 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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.