ansible常见的模块
ansible常见模块
主要就是命令模块和一些常见的模块,参数怎么使用,有什么效果
1、命令模块
1、shell模块
2、command模块
是默认的命令模块,& | < > 四个符号是无法识别的
3、raw模块
4、script模块
将主控节点的shell复制到被控节点执行,所以这个脚本文件是不需要执行权限的,与文件的本身没有关系,就是将命令放在被控节点上面执行
2、copy模块
将主控节点上的文件拷贝到被控节点上面,如果有相同的文件,内容不一样,则是覆盖
详细参数
src # 主控节点上面的路径
dest # 被控节点上面的路径
backup # yes的话 如果拷贝到被控节点上,有相同的文件的话,会对其进行一个备份的操作
content # 写的内容直接复制到被控节点上面
remote_src # yes的话 被控节点的文件拷贝到被控节点上面去
3、fetch模块
将被控节点的文件拷贝到主控节点上面去,拷贝的是文件
默认的话,拷贝到主控节点上面表现的形式是一个目录,以被控节点主机名命令的方式
详细的参数
src # 被控节点上面的路径
dest # 拷贝到主控节点上面的路径
flat # yes的话,只需要拷贝文件,不需要目录的形式
# 拷贝到主控节点的当前目录
[devops@server ansible]$ ansible node1 -m fetch -a 'src=/etc/passwd dest=./'
[devops@server ansible]$ ls node1/ -R
node1/:
etc
node1/etc:
passwd
4、yum_repository模块
配置yum仓库的模块
详细参数
name # 仓库名
description # 描述信息
baseurl # 仓库的地址
file # 文件名,不需要.repo,默认就是.repo结尾
state # absent 删除仓库
enabled # yes 启用仓库
gpgcheck # no 密钥不检测
5、yum模块
安装软件包的模块
详细参数
name # 软件包名
state # present安装 absent 删除,latest安装最新版本的
6、service模块
管理服务器的模块
name # 服务名
state # started 启动服务,stopped关闭服务,restarted 重启服务,reloaded 重新加载服务
enabled # yes 开启自启服务
7、system模块
跟上面一样的模块,管理服务
8、cron模块
周期性任务
name # 周期性任务起一个名字
state # present 生成一个任务,absent删除任务
minute # 分钟 */3 每三分钟
job # 任务执行的命令
cron_file # 写到/etc/crontab文件中
# 每隔2分钟写入到文件中
[root@master ansible]# ansible master -m cron -a "name='echo 123' minute='*/2' job='echo 123 > /mnt/123.txt' state=present"
9、user模块
用户管理模块
name # 用户
comment # 用户的描述信息
uid # 用户的uid号
group # 用户的主要组
shell # 用户登录shell
groups # 附加组 一般配合append使用
state # present 创建用户,absent 删除用户
remove # yes 彻底删除干净
[root@master ansible]# ansible master -m user -a "name=d1 comment='my name is d1' uid=3000 groups='root,q7' append=yes state=present "
10、group模块
创建组的模块
11、setup模块
收集事实变量的
[root@master ansible]# ansible master -m setup -a "filter=ansible_eth0"
12、archive
压缩模块
将被控节点的文件或者目录压缩
path # 指定压缩的原文件路径,可以是多个,就用列表表示
dest # 表示压缩成的文件的路径
format # 表示压缩的格式,gz(默认),bz2
remove # 压缩成功后是否删除原文件
[root@master ansible]# ansible node1 -m archive -a "path=/tmp/ dest=/opt/tmp.tar.gz format=gz "
13、unarchive
解压缩模块,将主控节点的压缩包解压到被控节点上面
src # 源文件
dest # 解压后的路径
remote_src # 默认是no,就是将源文件解压缩到被控节点上面,yes的话,将被控节点的解压缩到被控节点上面去
# 将主控节点的解压缩到被控节点上面
[root@master ansible]# ansible node1 -m unarchive -a "src=h1.tar.gz dest=/opt"
# 将被控节点的文件解压缩到被控节点上面去
[root@master ansible]# ansible node1 -m unarchive -a "src=/opt/tmp.tar.gz dest=/opt/ remote_src=yes"

浙公网安备 33010602011771号