ansible常用模块之 -- ini_file模块 – 在INI文件中调整设置

ansible常用模块之 -- ini_file模块 – 在INI文件中调整设置

ini_file模块 – 在INI文件中调整设置

一、摘要

  • 管理(添加、删除、更改)ini风格文件中的单个设置,而不必使用 template 或 assemble. 作为一个整体来管理文件。
  • 如果缺少的部分不存在,则添加它们。
  • 在Ansible 2.0之前,当读取源文件时,注释会被丢弃,因此不会出现在目标文件中。
  • 从Ansible 2.3开始,该模块将缺失的换行符添加到文件中,以与POSIX标准保持一致,即使不需要应用其他修改。

二、参数

参数选项/默认值描述
allow_no_value
boolean
· no ←
· yes
允许选项没有值和没有’='符号。
attributes
string
生成的文件或目录应该具有的属性。
要获得支持的标志,请查看目标系统上的chatr手册页。
该字符串应该包含与lsattr显示的相同顺序的属性。
= 操作符为默认值,否则需要在字符串中包含 + 或 - 操作符。
backup
boolean
· no ←
· yes
创建一个包含时间戳信息的备份文件,以便在不正确地损坏原始文件时可以恢复原始文件。
create
boolean
· yes ←
· no
如果设置为 no,如果文件不存在,模块将失败。
默认情况下,如果文件丢失,它将创建该文件。
group
string
应该拥有该文件/目录的组的名称,将提供给chown。
mode
string
生成的文件或目录应该具有的权限。
对于那些习惯了/usr/bin/chmod的人来说,记住模式实际上是八进制数。你必须添加一个前导零,这样Ansible的YAML解析器就知道这是一个八进制数(比如0644或01777),或者引用它(比如’644’或’1777’),这样Ansible就可以接收到一个字符串,并可以进行自己的从字符串到数字的转换。
给Ansible一个不遵循这些规则的数字将会得到一个十进制数,这将会产生意想不到的结果。
从Ansible 1.8开始,模式可以指定为符号模式(例如,u+rwx或u=rw,g=r,o=r)。
no_extra_spaces
boolean
· no ←
· yes
不要在“=”符号前后插入空格
option
string
如果设置了(更改值所需),则这是选项的名称。
如果添加/删除整个部分,可以省略。
owner
string
应该拥有该文件/目录的用户名,将提供给chown。
path
path
required
ini风格文件的路径;如果需要,可以创建这个文件。
section
path
required
INI文件中的Section名称。如果在设置单个值时state=present,则会添加此选项。
如果为空或设置为 null,则该选项将放在第一个部分之前。
如果配置格式不支持section,也需要使用null。
selevel
string
Default:“s0”SELinux文件上下文的level部分。
这是MLS/MCS属性,有时称为范围。
当设置为_default时,它将使用策略的级别部分(如果可用的话)。
serole
string
SELinux文件上下文的角色部分。
当设置为_default时,它将使用策略的角色部分(如果可用的话)。
setype
string
SELinux文件上下文的类型部分。
当设置为_default时,它将使用策略的类型部分(如果可用的话)。
seuser
sting
SELinux文件上下文的用户部分。
默认情况下,它使用系统策略。
当设置为_default时,它将使用策略的用户部分(如果可用的话)。
state
sting
· present ←
· absent
如果设置为 absent ,该选项或部分将被删除,如果 present 是创建。
unsafe_writes
boolean
· no ←
· yes
影响何时使用原子操作以防止数据损坏或从目标文件读取不一致。
默认情况下,该模块使用原子操作来防止数据损坏或从目标文件读取不一致,但有时系统的配置或破坏会防止这种情况发生。一个例子是docker装载的文件,它不能从容器内部原子地更新,只能以不安全的方式写入。
这个选项允许Ansible在原子操作失败时使用不安全的方法更新文件(然而,它并不强制Ansible执行不安全的写操作)。
重要!不安全的写操作会受到竞争条件的影响,并可能导致数据损坏。
value
sting
要与选项关联的字符串值。
删除选项时可省略。

三、示例

# 确保在指定的文件中fav=lemonade 在 section [drinks] 里
- name: Ensure "fav=lemonade is in section "[drinks]" in specified file
  ini_file:
    path: /etc/conf
    section: drinks
    option: fav
    value: lemonade
    mode: '0600'
    backup: yes

# 确保在指定的文件temperature=cold 是在section "[drinks]"里
- name: Ensure "temperature=cold is in section "[drinks]" in specified file
  ini_file:
    path: /etc/anotherconf
    section: drinks
    option: temperature
    value: cold
    backup: yes

官方文档:https://docs.ansible.com/ansible/2.9/modules/ini_file_module.html#ini-file-module

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值