yum install epel-release -y
yum install ansible -y
vim /etc/ansible/hosts
# ansible命令格式
ansible 主机清单中IP或分组名称 -m 模块 -a "参数"
# 列出主机清单
ansible 主机清单中IP或分组名称 --list
# 查看详细帮助
ansible 模块名
# 查看简短帮助
ansible -s 模块名
ansible 192.168.18.129 -m command -a "ifconfig"
#-m command是默认的可以省略
#例如:
ansible 主机清单中IP或分组名称 -a uptime
带管道符,变量的命令用-m shell这个模块
使用本地管理主机的脚本文件用 -m script这个模块
将本地文件拷贝到目标主机中
# 以下举例中all指所有主机
# mode表示权限,owner表示拥有者,backup是否备份
ansible all -m copy -a 'src=*** dest=***** mode=000 owner=somebody backup=yes'
# content类似于[echo>>],将内容附加进去,且支持换行符[\n]
ansible all -m copy -a 'content="hello\nthanks\n" dest=****'
从被控端取文件至ansible端,与copy相反,目录可先tar
# 这里不支持多文件抓取,无法使用*通配
ansible all -fetch -a 'src=被控端文件路径 dest=ansible端文件路径'
# 但是可以将要抓取的先打包成一个文件,其实是有打包的模块的
ansible all -m shell -a 'tar jcf log.tar.xz /var/log/*.log'
ansible all -m fetch -a 'src=/root/log.tar.xz dest=ansible端文件路径'
文件操作
# name后是被控端文件路径,stata指的是操作状态
# touch:生成 absent:删除 directory:创建文件夹 link:创建软连接
ansible all -m file -a 'name=*** state=touch'
修改主机名
# 这一步是立即生效和保存的
ansible 主机名 -m hostname -a 'name=***'
创建计划任务
# 设置计划任务
ansible all -m cron -a 'miunte=* weekday=1,3,5 job="想要执行的命令" name=自定义'
# 取消计划任务,job的参数必须写,name的参数最好写上
ansible all -m cron -a 'disabled=true job="想要执行的命令" name=自定义'
# 想要重新开启这个计划任务直接将disabled的参数改成false即可
ansible all -m cron -a 'disabled=false job="想要执行的命令" name=自定义'
# yes或者no也是可以的!
ansible all -m cron -a 'disabled=yes job="想要执行的命令" name=自定义'
ansible all -m cron -a 'disabled=no job="想要执行的命令" name=自定义'
# 要删除此计划任务要用state=absent
ansible all -m cron -a 'job="想要执行的命令" name=自定义 state=absent'
包管理工具
# 指定名称安装,安装多个用逗号隔开
ansible all -m yum -a 'name=***,&&,%%%'
# 卸载,老规矩absent
ansible all -m yum -a 'name=***,&&,%% state=absent'
# 列出已经安装的
ansible all -m yum -a 'list=installed'
# 使用rpm包安装
# 先将rpm推送到主机
ansible [目标主机] -m copy -a 'src=源地址 dest=目的地址'
# 执行rpm包安装,忽略key的检查加上disable_gpg_check=yes
ansible [目标主机] -m yum -a 'name=rpm包的路径'
# 更新yum的缓存,需指定包名
ansible all -m yum -a 'name=*** update_cache=yes'
服务管理
# 开启、enable:是否开机自弃
ansible all -m service -a 'name=*** state=started enable=yes'
# 重启、停止
ansible all -m service -a 'name=*** state=restarted/stopped'
用户和组管理
# 这里nginx是系统账号一般shell类型是nologin
# home指定用户家目录
# group属于哪个主组
# groups属于哪个辅助组
# uid指定uid号
# comment:描述
ansible all -m user/group -a 'name=*** shell=/sbin/nologin system=yes home=/var/nginx groups=root,bin uid/gid=80 comment="nginx service"'
# 删除用户还是老样子state=absent,remove:删除用户家目录
ansible all -m user -a 'name=*** state=absent remove=yes'
用于查看所有信息的模块
这里可以在参数中使用filter过滤所需要的信息
ansible -m setup -a 'filter=ansible_all_ipv4_address'
手机扫一扫
移动阅读更方便
你可能感兴趣的文章