一、前 言
昨天跟大家聊了一下ansible工具的基本使用情况,今天展开跟大家聊一聊它的常用模块具体用法。
ansible常用模块有:
1)ping
2)yum
3)template
4)copy
5)user
6)group
7)service
8)raw
9)command
10)shell
11)script
12)file
ansible常用模块raw、command、shell的区别:
- shell模块调用的/bin/sh指令执行;
- command模块不是调用的shell的指令 ,所以没有bash的环境变量;
- raw很多地方和shell类似,更多的地方建议使用shell和command模块。
但是如果是使用老版本 python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了。
二、ansible常用模块之ping
ping模块用于检查指定节点机器是否连通 ,用法很简单 ,不涉及参数 ,主机如果在线 ,则回复pong。
具体用法:
三、ansible常用模块之command
command模块用于在远程主机上执行命令 ,ansible默认就是使用command模块。
command模块有一个缺陷就是不能使用管道符和重定向功能。
具体用法:
四、ansible常用模块之raw
raw模块用于在远程主机上执行命令 ,其支持管道符与重定向。
具体用法:
五、ansible常用模块之shell
shell模块用于在受控机上执行受控机上的脚本 ,亦可直接在受控机上执行命令。
shell模块亦支持管道与重定向。
具体用法:
六、ansible常用模块之script
script模块用于在受控机上执行主控机上的脚本。
具体用法:
七、ansible常用模块之template
template模块用于生成一个模板 ,并可将其传输至远程主机上。
具体用法:
八、ansible常用模块之yum
yum模块用于在指定节点机器上通过yum管理软件 ,其支持的参数主要有两个:
- name:要管理的包名;
- state:要进行的操作。
state常用的值:
- latest:安装软件;
- installed:安装软件;
- present:安装软件;
- removed:卸载软件;
- absent:卸载软件。
若想使用yum来管理软件 ,请确保受控机上的yum源无异常。
具体用法:
九、ansible常用模块之copy
copy模块用于复制文件至远程受控机。
具体用法:
十、ansible常用模块之group
group模块用于在受控机上添加或删除组。
- name用于指定group的组名,string类型,必填项。
- state用于指定用户组在远程主机上是否被更改或删除,string类型。
有两个选项:absent ,present 。默认值为present ,absent为删除组。 - gid用于设定用户组gid ,int类型,默认值为空。
- system用于指定创建的用户组是否为系统组,布尔类型,可用选项false ,true ,默认为false。
具体用法:
十一、 ansible常用模块之user
user模块用于管理受控机的用户帐号。
- name参数
必须参数,用于指定要操作的用户名称,可以使用别名 user。 - group参数
此参数用于指定用户所在的基本组。 - u id参数
此参数用于指定用户的 u id 号。 - system参数
此参数用于指定是否创建系统账号 - shell参数
此参数用于指定用户的默认 shell。 - state参数
此参数用于指定用户是否存在于远程主机中,可选值有 present、absent ,默认值 为 present ,表示用户需要存在,当设置为 absent 时表示删除用户。 - remove参数
当state的值设置为 absent时,表示要删除远程主机中的用户。但是在删除用户时,不会删除用户的家目录等信息,这是因为 remove参数的默认值为 no ,如果设置为yes ,在删除用户的同时,会删除用户的家目录。当state=absent并且 remove=yes时,相当于执行 “userd el -- remove” 命令。 - password参数
此参数用于指定用户的密码。但是这个密码不能是明文的密码,而是一个对明文密码,”加密后” 的字符串,相当于 /etc/shadow 文件中的密码字段,是一个对明文密码进行哈希后的字 符串,你可以在 python 的命令提示符下输入如下命令,生成明文密码对应的加密字符串。
具体用法:
十二、ansible常用模块之service
service模块用于管理受控机上的服务。
- name参数
此参数用于指定需要操作的服务名称,比如 httpd。 - state参数
此参数用于指定服务的状态,比如,我们想要启动远程主机中的 nginx,则可以将 state的值设置为started;如果想要停止远程主机中的服务,则可以将state的值设置为 stoppe d 。此参数的可用值有 started、stopped、restarted、reloaded。 - enabled参数
此参数用于指定是否将服务设置为开机启动项,设置为 yes 表示将对应服务设置为开机启动,设置为no表示不会开机启动。
具体用法:
十三、ansible常用模块之file
file 模块可以帮助我们完成一些对文件的基本操作。
- state参数
state=directory 在远程主机上创建一个名为 data 的目录,如果存在则不会做操作;
state=touch 在远程主机上创建一个名为 testfile1的文件,如果 testfile1文件已经存在并且文件内有内容,则只会更新文件的时间戳,与 touch命令的作用相同;
state=link 在远程主机上为 testfile1 文件创建软链接文件;
state=hard 在远程主机上上为 testfile1 文件创建硬链接文件;
state=absent 删除文件,删除时不用区分目标是文件、 目录、还是链接;
state=s rc 在state设置为link或者hard时,表示我们想要创建一个软链或者硬链,所以,我们必须指明软链或硬链链接的哪个文件,通过src参数即可指定链接源。 - path参数
指定文件,如果远程主机上没有该文件,则进行创建。 - mod参数
权限可以在添加时设置特殊权限,前提要有执行权限( set 粘滞位)。 - owner和group参数
属主和属组。
具体用法:
注意:在创建链接文件时,如果源文件不存在,或者链接文件与其他文件同名时,强制覆盖同名文件或者创建链接文件。
十四、扩展模块之 yum_repository模块**
yum_repository 模块可以帮助我们管理远程主机上的yum仓库。
- name参数
必须参数,用于指定要操作的唯一的仓库ID ,也就是” . repo”配置文件中 每个仓库对应的” 中括号” 内的仓库ID。 - baseurl参数
此参数用于设置 yum仓库的 baseurl。 - description参数
此参数用于设置仓库的注释信息,也就是” . repo”配置文件中每个仓库对应的” name字段”对应的内容。 - file参数
此参数用于设置仓库的配置文件名称,即设置” . repo”配置文件的文件名前缀,在不使用此参数的情况下,默认以 name参数的仓库ID作为” . repo”配置文件的文件名前缀,同一个” . repo” 配置文件中可以存在多个 yum 源。 - enabled参数
此参数用于设置是否激活对应的 yum源,此参数默认值为 yes,表示启用对应的yum源,设置为no表示不启用对应的yum源。 - gpgcheck参数
此参数用于设置是否开启 rpm 包验证功能,默认值为 no ,表示不启用包验证,设置为 yes 表示开启包验证功能。 - gpgkey参数
当 gpgcheck 参数设置为yes时,需要使用此参数指定验证包所需的公钥。 - state参数
默认值为 present ,当值设置为 absent时,表示删除对应的yum源。
具体用法: