目录
命令语法
ansible 主机或组 -m 模块名 -a '模块参数'
command模块
ansible 组名或主机名 -m command -a '要执行的命令'
注意:不识别变量及特殊符号,比如管道符
user模块
ansible 组名或主机名 -m user -a '模块参数'
常用参数:
name:指定用户名称
uid、shell、home
state:
默认是state=present 添加用户
state=absent 删除用户
ansible 组名或主机名 -m user -a 'name=test shell=/sbin/nologin'
absible 组名或主机名 -m user -a 'name=test state=absent'
group模块
同user模块类似
ansible 组名或主机名 -m group -a 'name=组名 state=present' 添加组
ansible 组名或主机名 -m group -a 'name=组名 state=absent' 删除组
ping模块
shell模块
与command模块类似,但是支持更复杂的命令及特殊符号比如管道符
yum模块
选项:
name:指定软件包名称
state:present安装(默认) absent(删除)
ansible web -m yum -a 'name=tree' 安装时可以省略state=present
ansible web -m yum -a 'name=tree state=absent'
service模块
name:指定服务的名称
enabled:指定服务是否开机时自启动
state:指定服务最后的状态 started stopped reloaded restarted
ansible web -m service -a 'name=httpd state=started'
file模块
path:路径
state:touch(创建普通文件) directory(创建目录) absent
owner:指定文件的属主
group:指定文件的属组
ansible web -m file -a 'state=touch path=/tmp/123.txt'
ansible web -m file -a 'state=directory path=/tmp/123.txt'
ansible web -m file -a 'state=absent path=/tmp/123.txt'
ansible web -m file -a 'owner=user01 path=/tmp/123.txt'
copy模块
src:原文件路径
dest:目标路径
mode:指定权限
owner:指定复制后的文件的属主
content:替代src,也就是将一段内容作为原,将这个内容直接写入到目标文件中
ansible web -m copy -a 'src=/tmp/123.txt dest=/tmp/456.txt'
ansible web -m copy -a 'content='hello world' dest=/tmp/111.txt'
script模块
ansible web -m script -a /tmp/1.sh(脚本的绝对路径)
cron模块
* * * * *
minute hour day month weekday
job参数:具体执行的命令
state:present创建 absent删除
ansible web -m cron -a 'minute="0" hour="12" job="systemctl restart httpd" name="job2" state=present'
ansible web -m cron -a 'name="job2" state=absent'
unarchive模块
src:源文件(压缩包)
dest:目标路径(解压后)
ansible web -m unarchive -a 'src=/tmp/nginx-1.19.1.tar.gz dest=/user/local'