ansible

ansible 命令格式
-a MODULE_ARGS 模块参数
-c, --check 检查语法
-f FORKS 并发
–list-hosts 列出主机列表
-m MODULE_NAME 模块名字

ssh认证方式
密钥
秘钥
ssh-keygen生成密钥对
ssh-copy-id复制公钥到远程主机
私钥加密,公钥解密
查看ansible生成的文件

rpm -ql ansible
 /etc/ansible
 /etc/ansible/ansible.cfg
 /etc/ansible/hosts
 /etc/ansible/roles

ansible第一条命令

ansible 192.168.12.26 -m ping #ping一台主机
ansible 192.168.12.26,192.168.12.28 -m ping #ping多台主机
ansible all -m ping #ping所有主机

hosts文件内容

www[001:006].example.com 	www001到www006.example.com

host-pattern格式
单个机器;
多个机器,逗号隔开
全部机器,all
可以写一个分组
可以写多个分组
并集
逗号隔开
冒号隔开

交集:&隔开
差集:!隔开
命令相关command

ansible web -a 'ls'
ansible web -a 'chdir=/tmp pwd' #先切换目录,在执行相应的命令,一般情况下在编译时使用
ansible web -a 'creates=/tmp pwd'#如果creates的文件存在,则不执行后面的操作
ansible web -a 'removes=/tmp pwd'#如果removes的文件存在,则执行后面的操作
ansible web -a ‘removes=/tmp mkdir /data’ # 会执行后面的mkdir命令
ansible web -a 'creates=/data2 mkdir /data2' #会执行后面的mkdir命令

shell
<> | ; & $ 这些特殊字符command不支持

ansible web -m shell -a ‘echo “1” | passwd --stdin smmc’ #设置smmc的密码
ansible web -m shell -a ‘/root/a.sh’ #执行shell脚本

script

ansible db -m script -a ‘/root/a.sh’ #执行管控机上的文件

copy

ansible db -m copy -a "dest=/tmp/a.sh src=/root/m.sh"#复制文件到远程主机
ansible db -m copy -a "dest=/tmp/a.sh src=/root/m.sh backup=yes" #复制文件并备份远程文件
ansible web -m copy -a "dest=/tmp/a.sh src=/root/m.sh owner=smmc mode=700"#修改复制后的文件的属主和权限
ansible web -m copy -a "src=/tmp/init.d dest=/tmp"#复制目录到远程主机
ansible web -m copy -a "src=/etc/init.d/ dest=/tmp"#复制目录里的文件到远程主机
ansible web -m copy -a "src=/etc/ansible dest=/tmp owner=smmc"#复制目录到远程主机,并修改目录的属主,并且里面文件的属主也被修改了
ansible web -m copy -a “content='唧唧复唧唧' dest=/tmp/b.txt”#直接将content里的内容添加到dest的文件里

file

ln -s 原文件地址 目标文件地址 创建软连接
ln 创建硬链接
ansible all -m file -a "path=/tmp/smmc state=diretory"#创建一个目录
ansible all -m file -a "path=/tmp/smmc.txt state=touch" #创建一个文件
ansible all -m file -a "path=/tmp/smmc state=link src=/etc/init.d"#创建软链接,path是目标文件 src是源文件
ansible all -m file -a "path=/tmp/t state=absent" #删除文件

fetch
fetch用来拉取被管控机的文件或目录,每个被管控机创建一个文件夹,并且保留原来的目录结构

ansible web -m fetch -a 'dest=/tmp src=/var/log/cron'
ansible web -m pip -a 'name=flask'#安装pip包

service

ansible web -m service -a 'name=nginx state=started'#启动服务
ansible web -m service -a 'name=nginx state=stopped'#停止服务

cron
day:天 hour:小时 job:执行的任务 minute:分钟 month:月 name:名字 weekday:周

ansible web -m cron -a 'minute=10 job="touch /tmp/a.txt" name=touchfile'#新建计划任务
ansible web -m cron -a 'minute=10 job="touch /tmp/a.txt" name=touchfile disabled=yes'#关闭计划任务
ansible web -m cron -a 'name=touchfile state=absent'#删除计划任务

setup
ansible_all_ipv4_addresses 所有ipv4的地址
ansible_date_time 系统的时间
ansible_default_ipv4默认的ipv4的值
group
ansible db -m group -a ‘name=smmc’ #创建一个普通组
ansible db -m group -a ‘name=smmc state=absent’ #删除组

playbook剧本
yaml
语法校验:
#ansible-playbook --syntax-check ceshi.yml
playbook:ceshi.yml #正常

单个playbook

 - hosts: cache
   remote_user: root
   tasks:
   - name: createuser
     user: name=smmc
   - name: creategroup
     group: name=smmc
   - name: installredis
     yum: name=redis

若为多台机器 执行过程:所有的机器都执行玩第一个任务,再去执行第二个任务

roles

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在管控机的原配置文件中修改:(被管控机中配置文件所需的ip)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值