17,Ansible自动化管理工具服务

1,什么是Ansible
Ansible 是 python 中的一套模块,系统中的一套自动化工具,只需要使用 ssh 协议连接及可用来系统管理、自动化执行命令等任务。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的定海网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

2,为什么要用Ansible

  1. 可以实现批量系统操作配置
  2. 可以实现批量软件服务部署
  3. 可以实现批量文件数据分发
  4. 可以实现批量系统信息收集

3,使用Ansible的意义

  1. 提高工作的效率(部署综合架构)
  2. 提高工作准确度
  3. 减少维护的成本
  4. 减少重复性工作

4,安装部署

  1. 没有配置文件(不需要配置)
  2. 不需要启动服务
  3. 客户端没有需要部署任务

5,安装Ansible
yum -y install ansible
17,Ansible自动化管理工具服务

6,学习ansible主机清单
vi /etc/ansible/hosts
17,Ansible自动化管理工具服务
在上一单元SSH优化部分我们已经改变了端口,采用密钥登录,所以这里这样写反之,正常写
7,学习Ansible模块调用
首先就是要先打通ssh远程功能,ansible是建立在ssh通讯上实现的批量管理
1)ping模块
ansible 主机组名 -m 模块名
ansible nfs -m ping 调用ping模块

2)约等于万能模块shell (忘记这个命令吧,ansible支持2843个模块,每个命令都有自己的专门模块,不要都用shell来代替)
ansible nfs -m shell -a "各种命令"

8,yaml语法,这类语法调用模块更加细致,有更多的参数,有个一很大的有点就是不会重复执行,比如你在管理端对100台客户机执行脚本
中间报错了,可以直接再次执行而不报错 (ansible剧本)
特点:1)以缩进代表不同层级之间的关系
2)对索引有严格要求
1)file模块(每个模块的具体参数都在官方文档里有要自己会读https://docs.ansible.com/ansible/latest/modules)
ansible nfs -m file -a "path=/tmp/oldboy state=directory mode=644 owner=oldboy group=oldboy"

2)copy模块
ansible nfs -m copy -a "src=/etc/ssh/sshd_config dest=/tmp/ mode='644'"

3)script脚本模块
ansible nfs -m script -a "/server/scripts/xx.sh"

4)user用户模块(创建www用户和组uid和gid等于666,描述为oldboy,没有家目录,/sbin/nologin)
ansible nfs -m group -a "name=www gid=666"
ansible nfs -m user -a "name=www uid=666 comment=oldboy shell=/sbin/nologin create home=no"

5)cron模块
ansible nfs -m cron -a 'name="ntpdate" minute="*/5" job="ntpdate time1.aliyun.com"'

6)yum模块
ansible nfs -m yum -a "name=ntpdate state=lastest"

例1:搭建NFS服务
NFS服务端:

#!/bin/bash                                             

ansible nfs -m group -a "name=www gid=666 state=present"                        
ansible nfs -m user -a "name=www uid=666 group=666 shell=/sbin/nologin create_home=no"
ansible nfs -m yum -a "name=nfs-utils"                              
ansible nfs -m file -a "path=/data state=directory"                                         
ansible nfs -m copy -a "src=exports dest=/etc/exports backup=yes"   
ansible nfs -m service -a "name=rpcbind state=started enabled=yes"                          
ansible nfs -m service -a "name=nfs state=started enabled=yes"              
ansible nfs -m shell -a "showmount -e"                              

NFS客户端:

#!/bin/bash                                             

ansible nfs_client -m group -a "name=www gid=666 state=present"                                             
ansible nfs_client -m user -a "name=www uid=666 group=666 shell=/sbin/nologin create_home=no"   
ansible nfs_client -m yum -a "name=nfs-utils"       
ansible nfs_client -m file -a "path=/data state=directory"  
ansible nfs_client -m service -a "name=rpcbind state=started enabled=yes"   
ansible nfs_client -m shell -a "showmount -e 172.16.1.31"       
ansible nfs_client -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=mounted"    

分享题目:17,Ansible自动化管理工具服务
网址分享:http://scyanting.com/article/jehdgs.html