Ansible系列之 - 自动化运维知识总结
自动化相关工具:
- 代码管理:github gitlab bitbucket subversion
- 构建工具:maven ant gradle
- 自动部署:capistrano codedeploy
- 持续集成:jenkins travis
- 配置管理:ansible saltstack chef puppet
- 容器:docker podman lxc aws
- 编排:kubernetes core apache mesos
- 服务注册与发现:zookeeper etcd consul
- 脚本语言: python ruby shell
- 日志管理:elk logentries
- 系统监控:prometheus zabbix datadog graphite ganglia nagios
- 性能监控:appdynamics nerrelic splunk
- 压力测试:jmeter blazemeter loader.io
- 应用服务器:tomcat jboss iis
- web服务器:apache nginx
- 数据库:mysql oracle postgresql;mongodb redis
- 项目管理:jira asana taiga trello basecamp pivotaltracker
自动化运维应用场景:
- 文件传输
- 应用部署
- 配置管理
- 任务流编排
架构组成:
2.1ansible安装
- EPEL源的rpm包安装
[root@ansible ~]# yum -y install ansible
- 编译安装
[root@ansible ~]# yum -y install python-jinjia2 pyyaml python-paramiko python-babel python-crypto
[root@ansible ~]# tar zxvf ansible-1.5.4.tar.gz
[root@ansible ~]# cd ansible-1.5.4
[root@ansible ~]# python setup.py build
[root@ansible ~]# python setup.py install
[root@ansible ~]# mkdir -pv /etc/ansible
[root@ansible ~]# cp -r examples/* /etc/ansible
- Git方式
[root@ansible ~]# git clone git://github.com/ansible/ansible.git --recursive
[root@ansible ~]# cd ./ansible
[root@ansible ~]# source ./hacking/env-setup
- pip安装
pip是安装Python包的管理器,类似yum
[root@ansible ~]# yum -y install python-pip python-devel
[root@ansible ~]# yum -y install gcc glibc-devel zibl-devel rpm-bulid openssl-devel
[root@ansible ~]# pip install --upgrade pip
[root@ansible ~]# pip install ansible --upgrade
确认安装版本:[root@ansible ~]# ansible --version
2.2ansible配置
- 配置文件
#主配置文件,配置ansible工作特性,大部分配置内容无需进行修改
/etc/ansible/ansible.cfg
#主机清单
/etc/ansible/hosts
#存放角色的目录
/etc/ansible/roles/
inventory主机清单
- 为了批量操作主机,在inventory file中将其分组命名,inventory file可以有多个,也可动态生成
- inventory文件风格,中括号中字符为组名。可以将同一个主机同时放入多个不同的组中
- 如目标主机用了非默认的ssh端口,可以在主机名称后使用冒号加端口来指定
- 相关工具
- /usr/bin/ansible #主程序,临时命令执行工具
- /usr/bin/ansible-doc #查看配置文档,模块功能查看工具,类似man帮助
- /usr/bin/ansible-playbook #定制自动化任务,编排剧本工具,相当于shell脚本
- /usr/bin/ansible-pull #远程执行命令工具
- /usr/bin/ansible-vault #文件加密工具
- /usr/bin/ansible-console #基于console界面与用户交互的执行工具
- /usr/bin/ansible-galaxy #下载和上传优秀代码或roles模块的官网平台