17,Ansible自动化管理工具服务
1,什么是Ansible
Ansible 是 python 中的一套模块,系统中的一套自动化工具,只需要使用 ssh 协议连接及可用来系统管理、自动化执行命令等任务。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的定海网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
2,为什么要用Ansible
- 可以实现批量系统操作配置
- 可以实现批量软件服务部署
- 可以实现批量文件数据分发
- 可以实现批量系统信息收集
3,使用Ansible的意义
- 提高工作的效率(部署综合架构)
- 提高工作准确度
- 减少维护的成本
- 减少重复性工作
4,安装部署
- 没有配置文件(不需要配置)
- 不需要启动服务
- 客户端没有需要部署任务
5,安装Ansible
yum -y install ansible
6,学习ansible主机清单
vi /etc/ansible/hosts
在上一单元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://pwwzsj.com/article/jehdgs.html