Ansible命令参数
-f 并发进程数,默认5个
-m 模块名,默认为command,如 ansible pm -a "pwd"
-a 模块参数
-i 指定主机列表配置文件,默认为/etc/ansible/hosts
-h 查看帮助
-v 以详细信息模式运行命令,可以用来调试错误
-u 指定连接的用户名(需在其~/.ssh/下已配置好公钥)
Ansible的模块
命令模块:command、shell
文件模块:copy、fetch、file
安装模块:yum
服务模块:systemd
挂载模块:mount
定时任务:cron
用户模块:user、group
压缩解压:unarchive
①.查找模块 ansible-doc -l
②.查找指定模块的具体参数 ansible-doc -s command
command模块
chdir 在执行命令前先将路径改变到指定目录,相当于cd
creates 若指定目录存在就不执行命令,相当于[ -e /etc ] || pwd
removes 若指定目录存在就执行命令,相当于[ -e /etc ] && pwd
注:[ -e /etc ] 是判断/etc是否存在,存在返回true。
warn=False 忽略提示或警告。
shell模块
shell也是在远端节点执行命令,和command不同的是,command是默认模块可省略,但不支持变量、重定向、管道、分号、&等,而shell支持。如两条命令中间可用分号隔开。
shell模块的参数和command基本一致。
copy模块
src 本地要拷贝文件的路径(目录或文件都行)
dest 远端的路径(也可以为文件)
owner 定义文件的属主
group 定义文件的属组
mode 定义文件的权限信息,例:mode=644 或 mode=ugo+x
backup 若覆盖原有文件是否备份,默认为no不备份
force 默认yes,当文件内容不相同时会覆盖目标文件,若设置为no则不覆盖
注:当指定从文件a复制到文件b,若两文件内容不同,force=yes,文件b内容会被覆盖,但文件名不变
script模块
让远端节点执行本地脚本
file模块
创建、删除文件,对文件设置权限,比较鸡肋的模块,完全可以用shell代替
dest/path/name 远端路径
group 设置属组 owner 设置属主 mode 设置权限
src 指定本部路径进行复制
state=directory创建目录 touch创建普通文件 hard/link创建链接文件 absent删除文件 file查看指定文件是否存在
fetch模块
从远端抓取文件到本地
yum模块
name 软件包名
state=present/installed安装 absent/removed删除 latest安装最新的软件
[root@m01 ~]# ansible pm -m yum -a "name=rpcbind state=installed"
systemd模块
name 服务名
enabled 是否开机自启动,默认为no
state 设置状态,只能是以下四个值:started、stopped、reloaded、restarted
mount模块
fstype 指定挂载的文件系统类型
opts 指定挂载的参数信息
src/path 路径,将src挂载到path
state=absent 卸载挂载点,同时修改fstab信息
state=unmounted 卸载,不会修改fstab信息
state=present 不会挂载,只修改fstab信息
state=mounted 挂载,并修改fstab信息
cron模块
minute/hour/day/month/weekday 定时任务中的5个时间
name 定时任务名称 job 定时任务执行的命令
state=absent 删除指定的定时任务
disabled=yes 将指定定时任务进行注释,设置为no时是取消注释
user模块
password 请输入密码信息
name 指定用户名信息
uid 指定用户uid信息
group 指定用户主要属于哪个组
groups 指定用户属于哪个附加组信息
shell /bin/bash或/sbin/nologin 指定是否能够登录
create_home yes/no 是否创建家目录信息
home 指定家目录创建在什么路径 默认/home
state=absent 删除指定用户,但不会删除其家目录,若要删除家目录要加上remove=yes