Ansible是一种IT自动化工具。它可以配置系统,部署软件以及协调更高级的IT任务,例如处理配置管理,应用程序部署,持续部署,滚动更新。
Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企业环境。
Ansible也是一种简单的自动化语言,可以完美地描述IT应用程序基础结构
1). 加载自己的配置文件 默认/etc/ansible/ansible.cfg
2). 加载自己对应的模块文件,如command
3). 通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服 务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件 4). 给文件+x执行
5). 执行并返回结果
6). 删除临时py文件,退出
• 执行状态:
绿色:执行成功并且不需要做改变的操作
黄色:执行成功并且对目标主机做变更
红色:执行失败
•执行shell命令(command和shell)
•文件传输(copy和file)
•管理软件包(yum)
•用户和组(user)
•从源代码管理系统部署(git)
•管理服务(service)
•收集目标主机信息(setup)
ansible入门简单实践
master 192.168.198.200
node1 192.168.198.201
node2 192.168.198.202
node3 192.168.198.203
(图片可放大查看)
yum install ansible
(图片可放大查看)
(图片可放大查看)
设置用于节点鉴权的SSH密钥
ssh-keygen -b 2048 -t rsa
ssh-copy-id root@192.168.198.201
ssh-copy-id root@192.168.198.202
ssh-copy-id root@192.168.198.203
(图片可放大查看)
(图片可放大查看)
3、创建Ansible主机清单
vi /etc/ansible/hosts
例如加入如下行
主机组vm_servers
[vm_servers]
192.168.198.201
192.168.198.202
192.168.198.203
(图片可放大查看)
ansible all --list-hosts
ansible vm_servers --list-hosts
(图片可放大查看)
ansible <host-pattern> [-m module_name] [-a args]
ansible vm_servers -m ping
ansible all -m ping
(图片可放大查看)
command:在远程主机执行命令;不支持|管道命令
ansible vm_servers -m command -a 'df -PTh'
ansible vm_servers -m command -a 'uptime'
ansible vm_servers -m command -a 'uname -r'
(图片可放大查看)
(图片可放大查看)
shell模块在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道
ansible vm_servers -m shell -a 'lscpu | grep Intel'
ansible vm_servers -m shell -a 'cat /etc/passwd | grep root'
(图片可放大查看)
ansible vm_servers -m copy -a "src=/opt/init_centos7_v2.sh dest=/opt/"
(图片可放大查看)
(图片可放大查看)
(图片可放大查看)
yum安装软件
ansible vm_servers -m yum -a 'name=htop state=present'
(图片可放大查看)
(图片可放大查看)
yum卸载软件
ansible vm_servers -m yum -a 'name=iftop state=absent'
(图片可放大查看)
ansible vm_servers -m service -a 'name=rsyslog state=restarted'
(图片可放大查看)
(图片可放大查看)
上面只列举了几个基本模块的使用 ,一些复杂任务需要使用 Ansible playbooks
公众号后台回复【Ansible】获取Ansible培训PPT及word文档等相关文件