Ansible 学习笔记

Ansible 基础模块

Redhat 注册

红帽系统下载地址

Red Hat Enterprise Linux Download | Red Hat Developer(无需登录)

Red Hat Enterprise Linux for x86_64 9 - Red Hat 客户门户网站(需要登陆用户名密码)

系统注册

注册后可yum在线下载软件

#注册命令
subscription-manager register

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9HuGA0Ab-1664370470334)(E:\tmp\image-20220821172120706.png)]

#查看所有订阅
subscription-manager list --available --all
#更新订阅
subscription-manager attach --auto

redhat ansible 安装

yum安装

 yun list |grep ansible
 yum install ansible-core
 #撤销安装 可删除全部的安装包
 ##查看安装记录
 yum history
 ##撤销安装
 yum history undo ansible-core
 

ansible的主机列表(host-patten)

匹配主机的列表

主机组

[center]
192.168.7.10
192.168.7.11
[client]
192.168.7.11
192.168.7.12
ALL:表示所有Inventory中的所有主机
ansible all -m ping
# 包括 192.168.7.10、192.168.7.11、192.168.7.12、
*:通配符
ansible "*" -m ping
ansible "192.168.7.1*" -m ping
ansible "*192.168.7.1*" -m ping
# 包括 192.168.7.10、192.168.7.11、192.168.7.12、
或关系
ansible "center:client" -m ping
ansible "192.168.7.10:192.168.7.11" -m ping
# 包括 192.168.7.10、192.168.7.11、192.168.7.12、
与关系
ansible 'center:&client' -m ping
# 在center组并且也在client组:192.168.7.11
逻辑非
ansible 'center:!client' -m ping
#在center组但不在client组:192.168.7.10
正则表达式
ansible "~ent" -m ping
#包含 ent 的组
# 包括 192.168.7.10、192.168.7.11、192.168.7.12

变量

[center] 	#单个主机变量
192.168.7.2 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='root' 
192.168.7.3
[client]
192.168.7.11
192.168.7.12
[clinent:vars]		#组变量
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass='root'

ansible命令执行过程

  1. 加载配置文件: /etc/ansible/ansible.cfg
  2. 加载模块文件:command
  3. 生成py文件。传输到对端,授权
  4. 执行返回结果
  5. 删除py文件,推出(加参数 -v,-vv,-vvv 看详细过程)

执行状态

  1. 绿色:执行成功并且不需要改变的操作
  2. 黄色:执行成功并且对目标主机做改变
  3. 红色:执行失败
  4. 紫色:警告

Ansible模块

#使用格式
#ansible 指定主机清单 主机组  指定模块  指定动作(参数)
ansible  -i ./hosts centos -m ping  -a 'data=ok'

command(默认模块)

command 模块适用于简单命令,不支持特殊字符。为默认模块,不加 -m 时 默认使用command模块

ansible  centso -m command -a 'ls'

shell

shell 模块适用于复杂shell命令,支持特殊字符。

#简单shell
	#【查看SSH 监听会话】
	ansible redhat -m shell -a 'ss -ntpl sport == 22'
#-a 双引号用法 
	#【查看SSH 监听会话并格式化输出】
	ansible redhat -m shell -a "ss -ntpl sport == 22|awk 'BEGIN{print \"状态\t本地IP:端口\t程序\"} /ssh/{print \$1\"\t\"\$4\"\t\t\"\$6}'"
	#【查看用户名】
	ansible centos -m shell -a "echo \${HOSTNAME}"
#-a 单引号用法
	#【查看用户名】
	ansible redhat -m shell -a 'echo ${HOSTNAME}'

-a 单引号双引号未找到介绍,根据使用总结应该是双引号先执行特殊字符组装字符串在传参,单引号为当作字符串传参,特别是参数中含有单引号时需要用双引号组装字符串在传参

script

script 模块为分发脚本并执行脚本

参数
参数 评论
chdir
string
在运行脚本之前,请在远程节点上切换到此目录。
cmd
string
要运行的本地脚本的路径,后跟可选参数。
creates
string
远程节点上的文件名,如果它已经存在,则不会运行此步骤。
decrypt
boolean
此选项控制使用 Vault 自动解密源文件。选择:
⋅ \cdot no
⋅ \cdot yes ← (default)
executable
string
用于调用脚本的可执行文件的名称或路径。
free_form
string
本地脚本文件的路径,后跟可选参数。
removes
string
远程节点上的文件名,当它不存在时,此步骤将不会运行。
属性
属性 支持 描述
check_mode partial
虽然脚本本身是任意的,并且不受检查模式语义的约束,但它添加/选项作为解决方法 creates removes
可以在check_mode中运行,并在不修改目标的情况下返回更改的状态预测
diff_mode none 在差异模式下,将返回已更改的内容(或可能需要在check_mode中更改)的详细信息
pltform Platforms: all
此操作是少数几个不需要在远程数据库上使用 Python 的操作之一,因为它将命令直接传递到连接字符串中
可针对其操作的目标操作系统/系列
raw full 指示操作是否将“原始”或“自由格式”字符串作为选项,并具有自己的特殊解析
safe_file_operations n o n e \color{red}{none} none 使用安思必尔严格的文件操作功能,确保权限正确,避免数据损坏
vault full 可以自动解密 Ansible 的保险存储文件
案例
ansible centos -m script -a 'ABBBB/data/ansible/text.sh'

file

file 创建、删除 目录、文件、软连接。

主要参数 :path(目标对象)、state(状态)、src(源对象)

参数选项:state(状态):absent(删除),directory(目录),file ← (default),hard(硬链接),link(软连接),touch(文件)

参数
参数 评论
access_time
string
该参数表示应该设置文件访问时间的时间。
access_time_format
string
与 一起使用时,指示必须使用的时间格式。access_time基于默认的Python格式(参见time.strftime doc)。默认值:“%Y%m%d%H%M.%S”
attributes

aliases: attr
string
生成的文件系统对象应具有的属性。要获得受支持的标志,请查看目标系统上的 chattr 手册页。此字符串应包含与 lsattr 显示的属性顺序相同的属性。假定运算符为默认值,否则或运算符需要包含在字符串中。= + -
follow
boolean
此标志指示应遵循文件系统链接(如果存在)。在 Ansible 2.5 之前,这是默认设置。no选择: ←(默认)
force
boolean
在两种情况下强制创建符号链接:源文件不存在(但稍后会出现);目标存在并且是一个文件(因此,我们需要取消链接该文件并创建指向该文件的符号链接来代替它)。path``src选择:****无←(默认)是的
group
string
应拥有文件系统对象的组的名称,如将提供给 chown。如果未指定,它将使用当前用户的当前组,除非您是 root 用户,在这种情况下,它可以保留以前的所有权。
mode
raw
生成的文件系统对象应具有的权限。对于那些习惯于 /usr/bin/chmod 的人来说,请记住,模式实际上是八进制数。您必须添加一个前导零,以便 Ansible 的 YAML 解析器知道它是一个八进制数(like or ),或者用引号(like or )来表示,以便 Ansible 接收字符串并可以自己从字符串转换为数字。0644``01777``'644'``'1777'在不遵循这些规则之一的情况下给 Ansible 一个数字,最终会得到一个十进制数,这将产生意外的结果。从 Ansible 1.8 开始,该模式可以指定为符号模式(例如,或 )。u+rwx``u=rw,g=r,o=r如果未指定 且目标文件系统对象不存在,则在为新创建的文件系统对象设置模式时,将使用系统上的缺省值。mode``umask如果未指定,并且目标文件系统对象确实存在,则将使用现有文件系统对象的模式。mode指定是确保使用正确的权限创建文件系统对象的最佳方法。有关更多详细信息,请参阅 CVE-2020-1736。mode
modification_time
string
此参数指示应将文件的修改时间设置为的时间。应该在不需要修改时、使用默认时间格式时或 .preserve``YYYYMMDDHHMM.SS``now缺省值为 无 表示 是 的缺省值,并且是 的缺省值。preserve``state=[file,directory,link,hard]``now``state=touch
modification_time_format
string
与 一起使用时,指示必须使用的时间格式。modification_time基于默认的Python格式(参见time.strftime doc)。默认值:“%Y%m%d%H%M.%S”
owner
string
应该拥有文件系统对象的用户的名称,如将提供给 chown。如果未指定,它将使用当前用户,除非您是 root 用户,在这种情况下,它可以保留以前的所有权。
path
aliases:dest,name
path / required
正在管理的文件的路径。
recurse
boolean
以递归方式在目录内容上设置指定的文件属性。仅当 设置为 时,此值才适用。state``directory选择:****无←(默认)是的
selevel
string
SELinux 文件系统对象上下文的级别部分。这是 MLS/MCS 属性,有时称为 .range设置为 时,它将使用策略的部分(如果可用)。_default``level
serole
string
SELinux 文件系统对象上下文的角色部分。设置为 时,它将使用策略的部分(如果可用)。_default``role
setype
string
SELinux 文件系统对象上下文的类型部分。设置为 时,它将使用策略的部分(如果可用)。_default``type
seuser
string
SELinux 文件系统对象上下文的用户部分。默认情况下,它使用策略(如果适用)。system设置为 时,它将使用策略的部分(如果可用)。_default``user
src
path
要链接到的文件的路径。这仅适用于 和 。state=link state=hard对于 ,这也将接受不存在的路径。state=link相对路径相对于正在创建的文件 (),这是 Unix 命令处理相对路径的方式。path``ln -s SRC DEST
state
string
如果 ,则目录将被递归删除,文件或符号链接将被取消链接。对于目录,如果声明了 ,您将看到删除的文件和文件夹列在 下。请注意,如果 不存在,则不会导致失败,因为状态没有更改。absent diff path_contents absent file path
如果 ,则将创建所有中间子目录(如果它们不存在)。从 Ansible 1.7 开始,它们将使用提供的权限创建。directory
如果 没有其他选项,则返回 的当前状态。file path
如果使用 ,即使使用其他选项(如 ),如果文件存在,也会对其进行修改,但如果文件不存在,则不会创建该文件。如果要创建文件(如果该文件不存在),请设置为或使用 ansible.builtin.copy 或 ansible.builtin.template 模块。file``mode``touch
如果 ,将创建或更改硬链接。hard
如果 ,符号链接将被创建或更改。link
如果(1.4 中的新增功能),则如果文件不存在,则将创建一个空文件,而现有文件或目录将接收更新的文件访问和修改时间(类似于命令行的工作方式)。touch
选项: absent,directory,file ← (default),hard,link,touch
unsafe_writes
boolean
影响何时使用原子操作来防止数据损坏或从目标文件系统对象读取不一致。默认情况下,此模块使用原子操作来防止数据损坏或从目标文件系统对象读取不一致,但有时系统被配置或只是以阻止这种情况的方式中断。一个例子是 docker 挂载的文件系统对象,它不能从容器内部以原子方式更新,只能以不安全的方式编写。此选项允许 Ansible 在原子操作失败时回退到更新文件系统对象的不安全方法(但是,它不会强制 Ansible 执行不安全的写入)。重要!不安全的写入受争用条件的影响,并可能导致数据损坏。选择:****无←(默认)是的
属性
属性 支持 描述
check_mode full 可以在check_mode中运行,并在不修改目标的情况下返回更改的状态预测
diff_mode partial 在差异模式下,将返回已更改的内容(或可能需要在check_mode中更改)的详细信息
platform Platform: posix 可针对其操作的目标操作系统/系列
案例
#创建目录
ansible -i hosts centos -m file -a 'path="/home/soft" state=directory'
#创建软连接
ansible -i hosts centos -m file -a 'path="/soft" state=link src=/home/soft'
#删除软连接
ansible -i hosts centos -m file -a 'path="/soft" state=absent'
#删除目录
ansible -i hosts centos -m file -a 'path="/home/soft" state=absent'

copy

copy 模块将文件从本地或远程计算机复制到远程计算机上的某个位置。

主要参数: src(源文件),dest(目的文件),mode(目的文件),owner(归属用户),group(归属组),

参数
参数 评论
attributes
aliases: attr
string
生成的文件系统对象应具有的属性。要获得受支持的标志,请查看目标系统上的 chattr 手册页。此字符串应包含与 lsattr 显示的属性顺序相同的属性。假定运算符为默认值,否则或运算符需要包含在字符串中。=``+``-
backup
boolen
创建一个包含时间戳信息的备份文件,以便在以某种方式错误地破坏原始文件时可以取回原始文件。选择:****无←(默认)是的
checksum
string
正在传输的文件的 SHA1 校验和。用于验证文件复制是否成功。如果未提供此信息,ansible 将使用 src 文件的本地计算校验和。
content
string
当使用 而不是 时,将文件的内容直接设置为指定的值。src仅当 是 文件时才有效。如果文件不存在,则创建该文件。dest对于高级格式设置或包含变量,请使用 ansible.builtin.template 模块。content
decrypt
string
此选项控制使用 Vault 自动解密源文件。选择: ←(默认)
dest
path / 必填
应将文件复制到的远程绝对路径。如果 是目录,则此目录也必须是目录。srcif 是一个不存在的路径,并且如果以“/”结尾或为目录,则创建。dest``dest``src``dest如果 dest 是相对路径,则起始目录由远程主机确定。如果 和 是文件,则不会创建 的父目录,如果任务尚不存在,则任务将失败。src``dest``dest

directory_mode
raw
执行递归复制时,请设置目录的模式。如果未设置,我们将使用系统默认值。该模式仅在新创建的目录上设置,不会影响已存在的目录。
follow
string
此标志指示应遵循目标中的文件系统链接(如果存在)。选择:****无←(默认)是的
force
string
影响是否必须始终替换远程文件。如果 ,则当内容与源文件不同时,将替换远程文件。yes如果 ,则仅当目标不存在时,才会传输该文件。no选择: ←(默认)
group
string
应拥有文件系统对象的组的名称,如将提供给 chown。如果未指定,它将使用当前用户的当前组,除非您是 root 用户,在这种情况下,它可以保留以前的所有权。
local_follow
string
应遵循源代码树中的文件系统链接(如果存在)。选择: ←(默认)
mode
string
目标文件或目录的权限。对于那些习惯于记住模式实际上是八进制数的人来说。您必须添加一个前导零,以便 Ansible 的 YAML 解析器知道它是一个八进制数(like or ),或者用引号(like or )来表示,以便 Ansible 接收字符串并可以自己从字符串转换为数字。在不遵循这些规则之一的情况下给 Ansible 一个数字,最终会得到一个十进制数,这将产生意外的结果。/usr/bin/chmod``0644``01777``'644'``'1777'从 Ansible 1.8 开始,该模式可以指定为符号模式(例如,或 )。u+rwx``u=rw,g=r,o=r从 Ansible 2.3 开始,模式也可能是 特殊字符串 。preserve``preserve表示将向该文件授予与源文件相同的权限。执行递归复制时,另请参阅。directory_mode如果未指定 且目标文件不存在,则在为新创建的文件设置模式时,将使用系统上的默认值。mode``umask如果未指定 ,并且目标文件确实存在,则将使用现有文件的模式。mode指定是确保使用正确权限创建文件的最佳方法。有关更多详细信息,请参阅 CVE-2020-1736。mode
owner
string
应该拥有文件系统对象的用户的名称,如将提供给 chown。如果未指定,它将使用当前用户,除非您是 root 用户,在这种情况下,它可以保留以前的所有权。
remote_src
string
影响是否需要转移或是否已经存在远程。src如果 ,它将在控制器节点上搜索 。no``src是否将在受管(远程)节点上搜索。yes``src``remote_src从版本 2.8 开始支持递归复制。remote_src仅适用于 2.6 版。mode=preserve在 出现时,文件的自动解密不起作用。remote_src=yes选择:****无←(默认)是的
selevel
string
SELinux 文件系统对象上下文的级别部分。这是 MLS/MCS 属性,有时称为 .range设置为 时,它将使用策略的部分(如果可用)。_default``level
serole
string
SELinux 文件系统对象上下文的角色部分。设置为 时,它将使用策略的部分(如果可用)。_default``role
setype
string
SELinux 文件系统对象上下文的类型部分。设置为 时,它将使用策略的部分(如果可用)。_default``type
seuser
string
SELinux 文件系统对象上下文的用户部分。默认情况下,它使用策略(如果适用)。system设置为 时,它将使用策略的部分(如果可用)。_default``user
src
string
要复制到远程服务器的文件的本地路径。这可以是绝对的,也可以是相对的。如果 path 是一个目录,则以递归方式复制它。在这种情况下,如果 path 以 “/” 结尾,则只有该目录的内部内容会复制到目标。否则,如果它不以“/”结尾,则复制包含所有内容的目录本身。此行为类似于命令行工具。rsync
unsafe_writes
string
影响何时使用原子操作来防止数据损坏或从目标文件系统对象读取不一致。默认情况下,此模块使用原子操作来防止数据损坏或从目标文件系统对象读取不一致,但有时系统被配置或只是以阻止这种情况的方式中断。一个例子是 docker 挂载的文件系统对象,它不能从容器内部以原子方式更新,只能以不安全的方式编写。此选项允许 Ansible 在原子操作失败时回退到更新文件系统对象的不安全方法(但是,它不会强制 Ansible 执行不安全的写入)。重要!不安全的写入受争用条件的影响,并可能导致数据损坏。选择:****无←(默认)是的
validate
string
在将更新的文件复制到最终目标之前要运行的验证命令。临时文件路径用于验证,通过 ‘%s’ 传入,该路径必须存在,如下面的示例所示。此外,该命令可以安全地传递,因此扩展和管道等外壳功能将不起作用。有关如何处理比此选项提供的更复杂的验证的示例,请参阅复杂配置验证。
属性
属性 支持 描述
action full 指示这具有相应的操作插件,因此可以在控制器上执行选项的某些部分
async none 支持与关键字一起使用async
bypass_host_loop none 强制执行不按主机执行的“全局”任务,这将绕过每个主机的模板以及串行、限制和其他循环注意事项条件将像正在使用一样工作,使用的变量将来自第一个可用的主机run_once此操作在锁步策略之外将无法正常工作
check_mode full 可以在check_mode中运行,并在不修改目标的情况下返回更改的状态预测
diff_mode full 在差异模式下,将返回已更改的内容(或可能需要在check_mode中更改)的详细信息
platform Platform: posix 可针对其操作的目标操作系统/系列
safe_file_operations full 使用安思必尔严格的文件操作功能,确保权限正确,避免数据损坏
vault full 可以自动解密 Ansible 的保险存储文件
案例
#拷贝文件 并修改权限
ansible -i hosts centos -m copy -a 'src=/data/ansible/ dest=/home/tmp/ mode=777 owner=root group=root'

systemd

systemd 控制远程主机上的系统单元(服务、计时器等)。

主要参数 :name(服务名)、state(状态)、enabled(开机启动)

参数选项:state(状态):reloaded(承载),restarted(重启),started(启动),stoped(停止)

参数
参数 评论
daemon_reexec
aliases:daemon-reexec
boolean
在执行任何其他操作之前运行daemon_reexec命令,systemd 管理器将序列化管理器状态。
选项: **no**← (default),yes
daemon_reload
aliases:daemon-reload
boolean
在执行任何其他操作之前运行守护程序重新加载,以确保 systemd 已读取任何更改。
设置为 true时,即使模块不启动或停止任何内容,也会运行守护程序重新加载。
选项: **no**← (default),yes
enabled
boolean
设备是否应在启动时启动。至少需要一个状态和已启用。
选项:** noyes
force
boolean
是否覆盖现有符号链接。
选项:** noyes
masked
boolean
无论是否应屏蔽该单元,屏蔽单元都无法启动。
选项:** noyes
name
aliases:service,unit
string
设备的名称。此参数只采用一个要使用的单元的名称。当没有给出扩展时,它被暗示为as systemd。.service在 chroot 环境中使用时,您始终需要指定带有扩展名的单元的名称。例如。crond.service
no_block
boolean
不要同步等待请求的操作完成。排队的作业将继续,完成时不会阻止 Ansible。
选项:** **no**← (default),yes
scope
string
在给定的服务管理器作用域内运行 systemctl,可以是默认系统作用域、当前用户作用域,也可以是所有用户的作用域。system``user``global为了使 systemd 与“user”一起使用,执行用户必须启动并访问自己的 dbus 实例(systemd 要求)。用户 dbus 进程通常在正常登录期间启动,但在运行 Ansible 任务期间不会启动。否则,您可能会收到“无法连接到总线:没有此类文件或目录”错误。用户必须具有访问权限,通常通过设置变量来授予访问权限,请参阅下面的示例。XDG_RUNTIME_DIR
选项:** **system**← (default),userglobal
state
string
started/stopped是幂等操作,除非必要,否则不会运行命令。 将始终反弹设备。 将始终重新加载。restarted reloaded
选项: reloadedrestartedstartedstopped
属性
属性 支持 描述
check_mode full 可以在check_mode中运行,并在不修改目标的情况下返回更改的状态预测
diff_mode none 在差异模式下,将返回已更改的内容(或可能需要在check_mode中更改)的详细信息
platform Platform: posix 可针对其操作的目标操作系统/系列
案例
ansible centos -m systemd -a 'name=sshd state=restarted'

service

service : 控制远程主机上的服务。

主要参数 :name(服务名)、state(状态)、enabled(开机启动)

参数选项:state(状态):reloaded(承载),restarted(重启),started(启动),stoped(停止)

参数
参数 评论
arguments
aliases:args
string
命令行上提供的其他参数。将远程主机与 systemd 一起使用时,此设置将被忽略。
enabled
boolean
服务是否应在启动时启动。至少需要一个状态和已启用。
选项: noyes
name
string / required
服务的名称。
pattern
string
如果服务不响应 status 命令,请将要查找的子字符串命名为 ps 命令的输出中所示的子字符串,作为状态结果的替身。如果找到该字符串,则假定服务已启动。将远程主机与 systemd 一起使用时,此设置将被忽略。
runlevel
string
仅适用于OpenRC初始化脚本(例如Gentoo)。此服务所属的运行级别。将远程主机与 systemd 一起使用时,此设置将被忽略。默认值:“默认”
sleep
integer
如果服务正在运行,则在停止和启动命令之间休眠这么多秒。restarted这有助于解决行为恶劣的初始化脚本,这些脚本在发出停止信号后立即退出。并非所有服务管理器都支持睡眠,即在使用 systemd 时,此设置将被忽略。
state
string
started/stopped是幂等操作,除非必要,否则不会运行命令。restarted将始终反弹服务。reloaded将始终重新加载。**至少需要一个状态和已启用。**请注意,如果服务尚未启动,则重新加载将启动服务,即使您选择的初始化系统通常不会启动也是如此。
选项: reloadedrestartedstartedstopped
use
string
服务模块实际使用系统特定的模块,通常通过自动检测,此设置可以强制特定模块。通常,它使用“ansible_service_mgr”事实的值,并在找不到匹配项时回退到旧的“服务”模块。默认值:“自动”
属性
属性 支持 描述
action full 指示这具有相应的操作插件,因此可以在控制器上执行选项的某些部分
asybc full 支持与关键字一起使用async
bypass_host_loop none 强制执行不按主机执行的“全局”任务,这将绕过每个主机的模板以及串行、限制和其他循环注意事项条件将像正在使用一样工作,使用的变量将来自第一个可用的主机run_once此操作在锁步策略之外将无法正常工作
check_mode 不适用支持取决于调用的基础插件 可以在check_mode中运行,并在不修改目标的情况下返回更改的状态预测
diff_mode 不适用支持取决于调用的基础插件 在差异模式下,将返回已更改的内容(或可能需要在check_mode中更改)的详细信息
platform **平台:**全部
支持取决于每个平台的特定插件的可用性以及事实收集是否能够检测到它
可针对其操作的目标操作系统/系列
案例
ansible  -m service -a 'name=sshd state=started'

yum-repository

yum-repository 在基于 RPM 的 Linux 发行版中添加或删除 YUM 存储库

主要参数 :name(yum源中名字[epel])、description(yum源中name)、baseurl(yum源中baseurl)、enabled(yum源中enable)、gpgcheck(yum源中gpgcheck)、file(yum源的/etc/yum.repos.d/XXX.repo的文件名,默认与模块name一直)

repo文件说明
#几个变量:
#$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
#$arch,cpu体系,如i686,athlon等
#$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。

#必选值,定义软件仓库(Repository)的名称,用作Yum识别不同仓库,因此满足唯一性#其中serverid是用于区别各个不同的repository,必须有一个独一无二的名称。 重复了 前面覆盖后面--还是反过来呢???用enabled 测试是后面覆盖前面
[base]                                    				
#定义仓库仓库名和描述信息,也可用作配置说明等用途,通常设置该值是为了方便阅读仓库配置文件,支持$releasever $basearch这样的变量,可省略#name,是对repository的描述,支持像$releasever $basearch这样的变量; name=Fedora Core $releasever - $basearch - Released Updates
name=CentOS $releasever base              			
#指定当前仓库的镜像地址
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#yum源地址,包括HTTP(http://)、本地(file:///)、FTP(ftp://)
#必选值,定义仓库文件路径。可选的协议值为http, https, file:///, ftp:// ;后跟一个或多个URL(但只能有一个baseurl),需要特别注意的是,URL必须指向该Repository软件列表目录的上一级,简练的说明就是必须指向Repository repodata的上一级目录;特别需要注意的是,由于在类Unix系统(Unix Like OS) 中,正斜杠"/"用作路径分隔符及根目录,因此使用绝对路径表示本地RPM仓库路径时,必须使用3个正斜杠。变量$releasever用于识别系统发行版本,通常是5,6,7等数字; $basearch用于识别CPU架构,可能的值为i386、i686、x86_64等,设置这些变量是为了方便通过yum安装或升级仓库软件包。
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
#是否开启当前仓库,0表示关闭,1表示开启。如未指明,默认为1
enabled={1|0} 
#是否检查软件包的GPG签名,1为开启,0为关闭。若为官方源或其它可信机构源可设置为0,否则建议开启GPG检查
gpgcheck={1|0}             
#用于指定GPG签名文件的URL,当gpgcheck=1时,该项为必选项,否则yum安装时将报错,提示当前Repository不被信任
gpgkey==file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
参数
参数 评论
async
boolean
如果设置为yes, Yum将从这个repo并行下载包和元数据,如果可能的话。
选项: no,yes ←(默认)
attributrs
别名: attr
string
生成的文件系统对象应具有的属性。 要获得支持的标志,请查看 目标系统上 chattr lsattr 显示的顺序相同的属性 。 这 =运算符被假定为默认值,否则 +或者 -运算符需要包含在字符串中。
bandwidth
string
最大可用网络带宽(以字节/秒为单位)。 油门 选项一起使用。 如果 油门 是一个百分比并且带宽是 0那么带宽限制将被禁用。 如果 节流阀 表示为数据速率(字节/秒),则忽略此选项。 默认为0(没有带宽限制)。 默认值: “0”
baseurl
list / elements=string
指向 yum 存储库的“repodata”目录所在的目录的 URL。它也可以是多个 URL 的列表。这样,如果 state 设置为present ,则需要 metalinkmirrorlist 参数。
cost
string
访问此存储库的相对成本。 用于衡量一个 repo 的包是否大于/小于任何其他包。 默认值: “1000”
deltarpm_metadata_percentage
string
当 deltarpm 元数据与 pkgs 的相对大小大于此值时,不会从 repo 下载 deltarpm 元数据。 请注意,您可以在 100, 所以 200意味着元数据需要是包大小的一半。 利用 0关闭此检查,并始终下载元数据。 默认值: “100”
deltarpm_percentage
string
当 delta 与 pkg 的相对大小大于此值时,不使用 delta。 利用 0关闭增量 rpm 处理。 [本地存储库(使用 ](file://) file:// baseurl )默认关闭 delta rpm。 默认值: “75”
description
string
描述存储库的人类可读字符串。此选项对应于存储库文件中的“name”属性。仅当 state 设置为present 时,才需要此参数。
enabled
boolean
这告诉 yum 是否使用此存储库。Yum 默认值为 true选项:no,yes
enablegroups
boolean
确定 yum 是否允许对此存储库使用包组。Yum 默认值为true选项:no,yes
exclude
list / elements=string
要从更新或安装中排除的程序包的列表。这应该是一个以空格分隔的列表。使用通配符(例如。 和 ) 是允许的。*``?该列表也可以是常规的 YAML 数组。
failovermethod
string
roundrobin从要开始的 URL 列表中随机选择一个 URL,并在遇到联系主机的故障时继续浏览每个 URL。priority从列出的第一个基URL开始,并按顺序读取它们。
选项: roundrobin←(默认),priority
file
string
用于保存存储库的不带.repo扩展名的文件名。默认值为 name 的值。
gpgcakey
string
指向存储库的 ASCII 装甲 CA 密钥文件的 URL。
gpgcheck
boolean
告诉 yum 是否应该对包执行 GPG 签名检查。 没有默认设置。 如果未设置该值,系统设置从 /etc/yum.conf或系统默认 no将会被使用。 选择: 不 是的
gpgkey
list / elements=string
指向存储库的 ASCII 防护 GPG 密钥文件的 URL。它也可以是多个 URL 的列表。
group
string
应拥有文件系统对象的组的名称,如将提供给 chown。如果未指定,它将使用当前用户的当前组,除非您是 root 用户,在这种情况下,它可以保留以前的所有权。
http_caching
string
确定如何指示上游 HTTP 缓存处理 Yum 执行的任何 HTTP 下载。all表示应缓存所有 HTTP 下载。packages意味着只应缓存 RPM 包下载(但不应缓存存储库元数据下载)。none意味着不应缓存 HTTP 下载。选择:****所有←(默认)包没有
include
string
包括外部配置文件。同时支持本地路径和 URL。配置文件将插入到 include= 行的位置。包含的文件可能包含其他包含行。如果检测到包含环路,Yum 将因错误而中止。
includepkgs
list / elements=string
您只想从存储库中使用的软件包列表。 这应该是一个空格分隔的列表。 使用通配符的 Shell glob(例如。 *?) 被允许。 替代变量(例如 $releasever) 在这里很荣幸。 该列表也可以是常规 YAML 数组。
ip_resolve
string
确定 yum 如何解析主机名。 4或者 IPv4- 仅解析为 IPv4 地址。 6或者 IPv6- 仅解析为 IPv6 地址。 选择: 4 6 IPv4 IPv6 任意 ←(默认)
keepalive
boolean
这告诉 yum 是否应该将 HTTP/1.1 keepalive 与此存储库一起使用。这可以通过在从存储库下载多个文件时使用一个连接来提高传输速度。选择:****无←(默认)是的
keepcache
string
任何一个 1或者 0. 确定 yum 安装成功后是否保留头文件和包的缓存。 选择: 0 1 ←(默认)
metadata_expire
string
元数据过期的时间(以秒为单位)。默认值为 6 小时。默认值:“21600”
metadata_expire_filter
string
过滤metadata_expire时间,如果命令不需要,则允许以速度换取准确性。每个 yum 命令都可以指定它需要远程存储库提供一定程度的及时性质量。从“我即将安装/升级,所以最好是最新的”到“任何可用的都足够好”。never- 没有任何东西被过滤,总是服从metadata_expireread-only:past- 仅关注过去信息的命令将从即将过期的元数据中筛选出来。例如。yum 历史信息(如果历史记录需要查找有关以前事务的任何内容,则根据定义,远程包在过去是可用的)。read-only:present- 在过去和未来之间平衡的命令。例如。嗯,香香列表。read-only:future- 可能导致运行其他需要最新元数据的命令的命令。例如。嗯,检查更新。请注意,此选项不会覆盖“yum clean expire-cache”。
.**选择:**never,read-only:oast,read-only:present ← (default),read-only:future
metalink
string
指定 repomd 的 metalink 文件的 URL.xml,通过将 repomd.xml 文件的镜像转换为 baseurl 来生成整个存储库的镜像列表。如果 state 设置为 present,则需要 baseurlmirrorlist
mirrorlist
string
指定指向包含 baseurl 列表的文件的 URL。如果 state 设置为present ,则需要 baseurlmetalink 参数。
mirrorlist_expire
string
时间(以秒为单位),在此时间之后,本地缓存的镜像列表将过期。默认值为 6 小时。默认值:“21600”
mode
string
生成的文件系统对象应具有的权限。 对于那些习惯于 /usr/bin/chmod 的人,请记住模式实际上是八进制数。 您必须添加一个前导零,以便 Ansible 的 YAML 解析器知道它是一个八进制数(如0644或者 01777)或引用它(如 '644'或者 '1777') 所以 Ansible 接收一个字符串并且可以自己将字符串转换为数字。 在不遵循这些规则之一的情况下给 Ansible 一个数字最终会得到一个十进制数字,这将产生意想不到的结果。 从 Ansible 1.8 开始,可以将模式指定为符号模式(例如, u+rwx或者 u=rw,g=r,o=r). 如果 mode未指定且目标文件系统对象 存在,默认 umask在为新创建的文件系统对象设置模式时将使用系统上的。 如果 mode未指定且目标文件系统对象 确实 存在,将使用现有文件系统对象的模式。 指定 mode是确保使用正确权限创建文件系统对象的最佳方法。 有关详细信息,请参阅 CVE-2020-1736。
module_hotfixes
boolean
禁用模块 RPM 过滤并使存储库中的所有 RPM 可用。 默认是 None. 选择: 不 是的
name
string / required
唯一的存储库 ID。此选项在存储库文件中生成存储库的节名称。仅当 state 设置为presentabsent 时,才需要此参数。
owner
string
应该拥有文件系统对象的用户的名称,如将提供给 chown。如果未指定,它将使用当前用户,除非您是 root 用户,在这种情况下,它可以保留以前的所有权。
password
string
用于基本身份验证的用户名的密码。
priority
string
强制对存储库进行有序保护。该值是从 1 到 99 的整数。此选项仅在安装了 YUM 优先级插件时才有效。默认值:“99”
protect
boolean
保护包免受来自其他存储库的更新。选择:****无←(默认)是的
proxy
string
yum 应使用的代理服务器的 URL。设置为 以禁用全局代理设置。_none_
proxy_password
string
此代理的密码。
proxy_username
string
用于代理的用户名。
repo_gpgcheck
boolean
这告诉 yum 它是否应该从此存储库对 repodata 执行 GPG 签名检查。选择:****无←(默认)是的
reposdir
path
.repo文件将被存储的目录。 默认值: “/etc/yum.repos.d”
retries
string
设置任何检索文件的尝试在返回错误之前应重试的次数。 将此设置为 0让yum永远尝试。 默认值: “10”
s3_enabled
boolean
启用对 S3 存储库的支持。此选项仅在安装了 YUM S3 插件时才有效。选择:****无←(默认)是的
selevel
string
SELinux 文件系统对象上下文的级别部分。 这是 MLS/MCS 属性,有时称为 range. 当设置为 _default,它将使用 level政策的一部分(如果有)。
serole
string
SELinux 文件系统对象上下文的角色部分。 当设置为 _default,它将使用 role政策的一部分(如果有)。
setype
string
SELinux 文件系统对象上下文的类型部分。 当设置为 _default,它将使用 type政策的一部分(如果有)。
seuser
string
SELinux 文件系统对象上下文的用户部分。 默认情况下,它使用 system政策,如适用。 当设置为 _default,它将使用 user政策的一部分(如果有)。
skip_if_unavailable
boolean
如果设置为 yes如果由于任何原因无法联系此存储库,yum 将继续运行。 这应该仔细设置,因为任何给定的命令都会咨询所有 repos。 选择: 没有 ←(默认) 是的
ssl_check_cert_permissions
boolean
yum 是否应该检查存储库(远程和本地)证书路径的权限。 如果我们无法读取任何文件,则 yum 将强制 skip_if_unavailableyes. 这对于在具有客户端证书文件的存储库上使用 yum 的非 root 进程最有用,这些文件只能由 root 读取。 选择: 没有 ←(默认) 是的
sslcacert
aliases: ca_certstring
string
包含证书颁发机构数据库的目录的路径 yum 应该用于验证 SSL 证书。
sslclientcert
aliases: client_certstring
string
SSL 客户端证书 yum 的路径应用于连接到存储库/远程站点。
sslclientkey
aliases: client_keystring
string
SSL 客户端密钥 yum 的路径应用于连接到存储库/远程站点。
sslverify
aliases: validate_certs
string
定义 yum 是否应验证 SSL 证书/主机。
**选择:**no, yes ←(默认)
state
string
存储库文件的状态。
**选择:**absent, present←(默认)
throttle
string
为下载启用带宽限制。此选项可以表示为绝对数据速率(以字节/秒为单位)。可以将 SI 前缀(k、M 或 G)附加到带宽值。
timeout
string
超时之前等待连接的秒数。默认值:“30”
ui_repoid_vars
string
当显示存储库 ID 时,如果这些 yum 变量在 baseurl/etc 中使用,则将这些 yum 变量附加到字符串中。变量按列出(和找到)的顺序追加。默认值:“发布服务器 basearch”
unsafe_writes 布尔*
boolean*
影响何时使用原子操作来防止数据损坏或从目标文件系统对象读取不一致。默认情况下,此模块使用原子操作来防止数据损坏或从目标文件系统对象读取不一致,但有时系统被配置或只是以阻止这种情况的方式中断。一个例子是 docker 挂载的文件系统对象,它不能从容器内部以原子方式更新,只能以不安全的方式编写。此选项允许 Ansible 在原子操作失败时回退到更新文件系统对象的不安全方法(但是,它不会强制 Ansible 执行不安全的写入)。重要!不安全的写入受争用条件的影响,并可能导致数据损坏。选择:****无←(默认)是的
username
string
用于对存储库或实际任何 URL 进行基本身份验证的用户名。
属性
属性 支持 描述
check_mode full 可以在check_mode中运行,并在不修改目标的情况下返回更改的状态预测
diff_mode full 在差异模式下,将返回已更改的内容(或可能需要在check_mode中更改)的详细信息
平台 Platform: rhel 可针对其操作的目标操作系统/系列

你可能感兴趣的:(Ansible,ansible,学习,linux)