ansible常用模块之 -- assemble模块 -- 从片段组装配置文件

ansible常用模块之 -- assemble -- 从片段组装配置文件

assemble – 从片段组装配置文件

一、摘要

  • 从片段组装配置文件。
  • 通常一个特定的程序只接受一个配置文件,不支持 conf.d 样式的结构,在这种结构中很容易从多个源构建配置。Assemble将获取本地文件或已经传输到系统的文件目录,并将它们连接在一起以生成目标文件。
  • 文件按字符串排序顺序组装。
  • Puppet称这个想法为片段。

二、参数

参数选项/默认值描述
attributes
string
生成的文件或目录应该具有的属性。
要获得支持的标志,请查看目标系统上的chatr手册页。
该字符串应该包含与lsattr显示的相同顺序的属性。
= 操作符为默认值,否则需要在字符串中包含 + 或 - 操作符。
backup
boolean
· no ←
· yes
创建一个备份文件(如果 yes),包括时间戳信息,以便在不正确地损坏原始文件时可以取回原始文件。
decrypt
boolean
· yes ←
· no
此选项使用vault控制源文件的自动解密。
delimiter
string
分隔符,用于分隔文件内容。
dest
path
required
使用所有源文件的串联来创建的文件。
group
string
应该拥有该文件/目录的组的名称,将提供给chown。
ignore_hidden
boolean
· no ←
· yes
一个布尔值,用于控制以 ‘.’ 开头的文件是否会被包括在内。
mode
string
生成的文件或目录应该具有的权限。
对于那些习惯了 /usr/bin/chmod 的人来说,记住模式实际上是八进制数。你必须添加一个前导零,这样Ansible的YAML解析器就知道这是一个八进制数(比如0644或01777),或者引用它(比如’644’或’1777’),这样Ansible就可以接收到一个字符串,并可以进行自己的从字符串到数字的转换。
给Ansible一个不遵循这些规则的数字将会得到一个十进制数,这将会产生意想不到的结果。
在Ansible 1.8中,模式可以指定为符号模式(例如,u+rwx或u=rw)
owner
string
应该拥有该文件/目录的用户名,将提供给chown。
regexp
string
只有当regex与文件名匹配时才组装文件。
如果未设置,则组装所有文件。
每个“\”(反斜杠)必须转义为“\”,以符合YAML语法。
使用Python正则表达式。
remote_src
boolean
· no ←
· yes
如果 no,它将在原始/主机器上搜索 src。
如果 yes,它将被发送到src的远程/目标机器上。
selevel
string
Default:‘s0’SELinux文件上下文的 level 部分。
这是MLS/MCS属性,有时称为范围。
当设置为_default时,它将使用策略的级别部分(如果可用的话)。
serole
string
SELinux文件上下文的角色部分。
当设置为_default时,它将使用策略的角色部分(如果可用的话)。
setype
string
SELinux文件上下文的类型部分。
当设置为_default时,它将使用策略的类型部分(如果可用的话)。
seuser
string
SELinux文件上下文的用户部分。
默认情况下,它使用系统策略。
当设置为_default时,它将使用策略的用户部分(如果可用的话)。
src
path
required
一个已经存在源文件的目录。
unsafe_writes
boolean
· no ←
· yes
影响何时使用原子操作以防止数据损坏或从目标文件读取不一致。
默认情况下,该模块使用原子操作来防止数据损坏或从目标文件读取不一致,但有时系统的配置或破坏会防止这种情况发生。一个例子是docker装载的文件,它不能从容器内部原子地更新,只能以不安全的方式写入。
这个选项允许Ansible在原子操作失败时退回到不安全的方法来更新文件(然而,它并不强制Ansible执行
validate
string
复制到位之前要运行的验证命令。
要验证的文件路径是通过 ‘%s’ 传入的,它必须像下面的sshd示例中那样显示。
该命令是安全传递的,因此shell功能如扩展和管道将不起作用。

三、示例

# 从目录中的片段组装
- name: Assemble from fragments from a directory
  assemble:
    src: /etc/someapp/fragments
    dest: /etc/someapp/someapp.conf

# 在每个片段之间插入提供的分隔符
- name: Inserted provided delimiter in between each fragment
  assemble:
    src: /etc/someapp/fragments
    dest: /etc/someapp/someapp.conf
    delimiter: '### START FRAGMENT ###'

# 在通过sshd验证之后,组装一个新的“sshd_config”文件
- name: Assemble a new "sshd_config" file into place, after passing validation with sshd
  assemble:
    src: /etc/ssh/conf.d/
    dest: /etc/ssh/sshd_config
    validate: /usr/sbin/sshd -t -f %s

官方文档: https://docs.ansible.com/ansible/2.9/modules/assemble_module.html#assemble-module

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值