xxggmmxx 发表于 2018-7-30 07:55:53

33-3 ansible常用模块事例

  管理端:192.168.1.131Centos7.2
  node1:1.132Centos7.2
  node2:1.133Centos7.2
  node3:1.122Centos6.7
  # yum -y install ansible
  # ssh-keygen -t rsa -P ''
  # ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.131#管理本机
  # ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.132
  # ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.133
  # ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.122
  # cd /etc/ansible/
  # cp hosts{,.bak}
  # vim hosts
  添加
  
  192.168.1.132
  192.168.1.133
  
  192.168.1.122
  测试
  1、对单台主机执行命令
  # ansible 192.168.1.132 -m command -a 'ifconfig'
  2、对全部主机执行命令
  # ansible all -m command -a 'ifconfig'
  
  3、对指定主机组执行下载文件命令
  ansible websrvs -a 'wget -O /tmp/epel-release-latest-7.noarch.rpm http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm'
  
  注:必须指定文件名
  
  4、对指定主机组创建用户
  # ansible websrvs -m user -a "name=hacluster state=present"
  
  5、对指定主机组删除用户
  # ansible websrvs -m user -a "name=hacluster state=absent"
  6、设置计划任务:从ntp服务器上同步所有主机时间
  # ansible all -m cron -a 'name="sync time from ntpserver" minute="*/10" job="/sbin/ntpdate 192.168.1.62 &> /dev/null"
  
  7、取消所有主机上name="sync time from ntpserver"的计划任务
  # ansible all -m cron -a 'name="sync time from ntpserver" state=absent'
  
  8、复制本机上的文件至指定主机组
  # ansible websrvs -m copy -a 'src=/etc/fstab dest=/tmp/fstab.tmp mode=600'
  
  9、在所有主机上创建指定目录
  # ansible all -m file -a 'path=/tmp/testdir state=directory'
  
  10、对所有主机上的文件创建链接文件
  # ansible all -m file -a 'path=/tmp/fstab.symlink state=link src=/tmp/fstab.tmp'
  
  11、强制删除所有主机上的链接文件
  # ansible all -m file -a 'path=/tmp/fstab.symlink state=absent force=yes'
  
  12、测试管理主机是否在线
  # ansible all -m ping
  
  13、在指定主机组上用yum安装nginx
  # ansible websrvs -m yum -a 'name=nginx state=latest'
  
  14、在指定主机组上启动nginx并设定开机启动
  # ansible websrvs -m service -a 'name=nginx state=started enabled=yes'
  
  15、在指定主机组上停止nginx并取消开机启动
  # ansible websrvs -m service -a 'name=nginx state=stopped enabled=no'
  
  16、在指定主机组上添加centos用户,并设定密码为centos
  # ansible websrvs -m user -a 'name=centos state=present'
  # ansible websrvs -m command -a 'echo centos | passwd --stdin centos'#错误,这里不能使用command,应使用shell,command命令不支持管道以下面语句为准
  # ansible websrvs -m shell -a 'echo centos | passwd --stdin centos'
  17、在指定主机组上执行本地shell脚本
  # vim /tmp/test.sh
  #!/bin/bash
  #
  echo "$(hostname) ansible is good." > /tmp/ansible.txt
  # ansible websrvs -m script -a '/tmp/test.sh'
  
  18、取得指定主机组上的相关信息
  # ansible websrvs -m setup
页: [1]
查看完整版本: 33-3 ansible常用模块事例