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"
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。