Ansible系列之 - 自动化运维知识总结



1.概述

自动化相关工具:

  • 代码管理: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.Ansible自动化配置工具

架构组成:


2.1ansible安装

  1. EPEL源的rpm包安装
[root@ansible ~]# yum -y install ansible


  1. 编译安装
[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


  1. Git方式
[root@ansible ~]# git clone git://github.com/ansible/ansible.git --recursive
[root@ansible ~]# cd ./ansible
[root@ansible ~]# source ./hacking/env-setup


  1. 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配置

  1. 配置文件
#主配置文件,配置ansible工作特性,大部分配置内容无需进行修改
/etc/ansible/ansible.cfg
#主机清单
/etc/ansible/hosts
#存放角色的目录
/etc/ansible/roles/


inventory主机清单

  • 为了批量操作主机,在inventory file中将其分组命名,inventory file可以有多个,也可动态生成
  • inventory文件风格,中括号中字符为组名。可以将同一个主机同时放入多个不同的组中
  • 如目标主机用了非默认的ssh端口,可以在主机名称后使用冒号加端口来指定
  1. 相关工具
  • /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模块的官网平台