community.general.ini_file 模块 – 微调 INI 文件中的设置
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。
要在 playbook 中使用它,请指定:community.general.ini_file
。
概要
管理(添加、删除、更改)INI 风格文件中的单个设置,而无需使用例如 ansible.builtin.template 或 ansible.builtin.assemble 来整体管理文件。
如果缺少部分,则添加缺少的部分。
即使不需要应用其他修改,此模块也会向文件添加缺少的结尾换行符,以符合 POSIX 标准。
参数
参数 |
注释 |
---|---|
允许选项没有值且没有“=”符号。 选项
|
|
生成的 filesystem 对象应具有的属性。 要获取支持的标志,请查看目标系统上 *chattr* 的手册页。 此字符串应按 *lsattr* 显示的顺序包含属性。
|
|
创建一个包含时间戳信息的备份文件,以便您可以找回原始文件,如果您以某种方式错误地破坏了它。 选项
|
|
如果设置为 默认情况下,如果文件丢失,它将创建文件。 选项
|
|
如果设置为 如果设置为 选项
|
|
应该拥有文件系统对象的组的名称,就像提供给 *chown* 一样。 如果未指定,它将使用当前用户的当前组,除非您是 root 用户,在这种情况下,它可以保留以前的拥有者。 |
|
如果这样做只会添加或删除 选项
|
|
生成的 filesystem 对象应具有的权限。 对于习惯使用 * /usr/bin/chmod* 的用户,请记住模式实际上是八进制数。您必须向 Ansible 提供足够的信息才能正确解析它们。为了获得一致的结果,请引用八进制数(例如, 向 Ansible 提供不遵循上述任何规则的数字将最终得到一个十进制数,这将产生意外的结果。 从 Ansible 1.8 开始,模式可以指定为符号模式(例如, 如果未指定 如果未指定 指定 |
|
默认情况下,模块会替换与给定选项匹配的注释行。 将此选项设置为 选项
|
|
不要在“=”符号前后插入空格。 选项
|
|
应该拥有文件系统对象的用户的名称,如同提供给 *chown* 一样。 如果未指定,则它使用当前用户,除非您是 root 用户,在这种情况下,它可以保留之前的拥有权。 指定数字用户名将被认为是用户 ID 而不是用户名。避免使用数字用户名以避免这种混淆。 |
|
INI 样式文件的路径;如果需要,将创建此文件。 |
|
在可能存在的多个同名节中,选择第一个包含匹配选项和值的节。 使用 使用 |
|
匹配的 |
|
匹配的 |
|
SELinux 文件系统对象上下文中的级别部分。 这是 MLS/MCS 属性,有时称为 设置为 |
|
SELinux 文件系统对象上下文的角色部分。 设置为 |
|
SELinux 文件系统对象上下文中的类型部分。 设置为 |
|
SELinux 文件系统对象上下文的用户部分。 默认情况下,它使用 设置为 |
|
如果设置为 如果设置为 如果设置为 如果设置为 选项
|
|
影响何时使用原子操作来防止目标文件系统对象的数据损坏或不一致读取。 默认情况下,此模块使用原子操作来防止目标文件系统对象的数据损坏或不一致读取,但有时系统的配置方式存在问题或已损坏,从而阻止了此操作。一个例子是 docker 挂载的文件系统对象,它们无法在容器内以原子方式更新,只能以不安全的方式写入。 此选项允许 Ansible 在原子操作失败时回退到不安全的文件系统对象更新方法(但是,它不会强制 Ansible 执行不安全写入)。 重要!不安全写入容易出现竞争条件,并可能导致数据损坏。 选项
|
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:完全支持 |
处于 diff 模式时,将返回关于已更改内容(或可能需要在 |
备注
示例
- name: Ensure "fav=lemonade is in section "[drinks]" in specified file
community.general.ini_file:
path: /etc/conf
section: drinks
option: fav
value: lemonade
mode: '0600'
backup: true
- name: Ensure "temperature=cold is in section "[drinks]" in specified file
community.general.ini_file:
path: /etc/anotherconf
section: drinks
option: temperature
value: cold
backup: true
- name: Add "beverage=lemon juice" is in section "[drinks]" in specified file
community.general.ini_file:
path: /etc/conf
section: drinks
option: beverage
value: lemon juice
mode: '0600'
state: present
exclusive: false
- name: Ensure multiple values "beverage=coke" and "beverage=pepsi" are in section "[drinks]" in specified file
community.general.ini_file:
path: /etc/conf
section: drinks
option: beverage
values:
- coke
- pepsi
mode: '0600'
state: present
- name: Add "beverage=lemon juice" outside a section in specified file
community.general.ini_file:
path: /etc/conf
option: beverage
value: lemon juice
state: present
- name: Remove the peer configuration for 10.128.0.11/32
community.general.ini_file:
path: /etc/wireguard/wg0.conf
section: Peer
section_has_values:
- option: AllowedIps
value: 10.128.0.11/32
mode: '0600'
state: absent
- name: Add "beverage=lemon juice" outside a section in specified file
community.general.ini_file:
path: /etc/conf
option: beverage
value: lemon juice
state: present
- name: Update the public key for peer 10.128.0.12/32
community.general.ini_file:
path: /etc/wireguard/wg0.conf
section: Peer
section_has_values:
- option: AllowedIps
value: 10.128.0.12/32
option: PublicKey
value: xxxxxxxxxxxxxxxxxxxx
mode: '0600'
state: present
- name: Remove the peer configuration for 10.128.0.11/32
community.general.ini_file:
path: /etc/wireguard/wg0.conf
section: Peer
section_has_values:
- option: AllowedIps
value: 10.4.0.11/32
mode: '0600'
state: absent
- name: Update the public key for peer 10.128.0.12/32
community.general.ini_file:
path: /etc/wireguard/wg0.conf
section: Peer
section_has_values:
- option: AllowedIps
value: 10.4.0.12/32
option: PublicKey
value: xxxxxxxxxxxxxxxxxxxx
mode: '0600'
state: present