一.介绍
ansible是一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,它是基于python语言,由Paramiko和PyYAML两个关键模块构建。集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的.
ansible被定义为配置管理工具,配置管理工具通常具有以下功能:
- 确保所依赖的软件包已经被安装
- 配置文件包含正确的内容和正确的权限
- 相关服务被正确运行
ansible基本架构
ansible程序目录结构:
- 配置文件: /etc/ansible/
- 执行文件目录: /usr/bin/
- lib依赖库: /usr/lib/python2.7/site-packages/ansible/
- help文件: /usr/lib/python2.7/site-packages/ansible
ansible自动部署httpd
1.安装ansible以及相关依赖性
2.配置主机清单
3.测试ping模块
4.制作免密连接
- 免密连接测试
5.测试user模块:给所有主机添加用户
添加的用户可以在/etc/shadow中查看
- 添加用户授权
6.部署httpd
[root@server1 ~]# cd /etc/ansible/
[root@server1 ansible]# mkdir playbooks
[root@server1 ansible]# cd playbooks/
[root@server1 playbooks]# mkdir httpd
[root@server1 playbooks]# cd httpd/
[root@server1 httpd]# vim httpd.yml
- hosts: server2
remote_user: root
tasks:
- name: install httpd
yum: name=httpd state=present
- name: config httpd
copy: src=httpd.conf dest=/etc/httpd/conf/httpd.conf
notify: restart httpd
- name: start httpd
service: name=httpd state=started
handlers:
- name: restart httpd
service: name=httpd state=restarted
- 复制httpd的配置文件到ansible下
- 检查语法错误
- 查看主机
- 查看任务
7.执行
- 以某一任务开始执行