ansible-模块

1. authorized_key模块 ---->作用:部署公钥
ansible all -m authorized_key -a "user=root exclusive=true manage_dir=true key='$(</root/.ssh/id_rsa.pub)'" -k
- -m 是模块 
- -a 是参数
- exclusive意思是强制部署,以前部署过会重新部署一遍以保证部署的成功性
- manage_dir 意思是如果/root没有.ssh文件目录自动创建.ssh文件目录,不然会报错
- key意思是公钥内容,$(</root/.ssh/id_rsa.pub)获取公钥id_rsa.pub
- -k 是使用密码方式
2. 解决第一次连接主机时输入yes问题
要把ansible.cfg文件中加上host_key_checking=False,可以在/etc/ansible/ansible.cfg中复制过去(不要注释)

3. ansible-doc模块的手册,相当于shell中的man
- ansible-doc -l 列出所有模块
- ansible-doc 模块名字 查看该模块的帮助
4. ping模块
- 测试网络的连通性,ping模块没有参数
- 注意:是测试ssh的连通性
- ansible 分组名 -m ping
5. command模块
- 默认模块,远程执行命令
- ansible 分组名 -m command -a '[args]'
# 注意事项:
- 该模块通过-a跟上命令可以直接执行,但是命令中有如下字符则执行不成功:">""<""|""&"
- 该模块不启动shell,直接在ssh进程中执行,所有使用到shell特性的命令都是执行失败 
6. shell/raw模块
- shell模块用法和command模块一样,区别是shell模块是通过/bin/sh进行执行命令,可以执行任意命令
- raw模块和shell模块一样,可以执行任意命令,但是raw模块没有chdir、creates、removes参数
- ansible all -m shell -a 'chdir=/mnt touch a.txt' //到mnt目录下创建目录
## chdir是相当于cd命令,改变目录
7. script模块
- 可以直接在本地写脚本,然后使用script模块批量执行
- ansible 分组名 -m script -a '脚本路径'
8. copy模块------>适合copy分发到各个主机都相同的文件
- 复制文件到远程主机
- src:要复制到远程主机的文件在本地的路径,可以是绝对路径也可以是相对路径;如果路径是一个目录则是递归复制,这种情况下,如果是以'/'结尾,
       则只复制目录里的内容,如果没有'/',则包含目录在内的整个内容将全部复制,类似于rsync
- dst:必选项,远程主机的绝对路径,如果源文件是一个目录,那么该路径下也必须是目录
- backup:在覆盖之前将原文件备份,备份文件包含时间信息;有两个选项yes|no
- force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖;为no,则只有当目标主机的目标位置不存在该文件时才复制,默认为yes
9. lineinfile/replace模块----->适合修改有特点个性的文件
- 类似于sed的行编辑替换模块
- path 目的文件
- regexp 正则表达式
- line 替换后的结果,要把一整行写下来,引号多的要用'\'转义一下
## 比如:line="ONBOOT=\"yes\"" 转义之后yes两遍引号就按正常字符
- replace 替换指定字符,只替换正则中匹配到的内容,没匹配到的不做更改

两个例子如图:

10. yum模块----> 查看详细用法用ansible-doc yum
- 使用yum包管理器来管理软件包
- config_file yum的配置文件
- disable_gpg_check 关闭gpg_check
- disablerepo 不启用某个源
- enablerepo 启用某个源
- name 要操作的软件包名字,也可以传递给一个url或者一个本地rpm包的路径
- state 状态(present、absent、latest、默认是installed) 是要执行的动作

两个例子如图:

11. service模块
- name 必选项,服务名称
- enabled 是否开启自启(yes|no)
- state 服务要执行的操作,比如启动、停止、重启、重新加载等(start|stop|restart|reload)
12. setup模块
- 用与获取主机信息,在playbook中经常会用到一个参数gather_facts就与该模块有关;setup模块下经常使用的一个参数就是filter
- filter参数可以过滤到我们需要的信息
posted @ 2020-01-07 12:10  昭昭木木  阅读(192)  评论(0编辑  收藏  举报