absible是2013年推出的一款IT自动化和DevOps软件,2015年被redhat收购,是基于python研发,糅合很多老运维工具的优点,实现了批量操作系统配置,批量程序部署,批量运行命令等功能
ansible可以实现:
-- 自动化部署APP
-- 自动化管理配置项
-- 自动化持续交付
-- 自动化(AWS)云服务管理
ansible优点:
-- 只需要ssh和python即可使用
-- 无客户端
-- ansible功能强大,模块丰富
-- 上手容易,门槛低
-- 基于python开发,做二次开发更容易
-- 使用公司比较多,社区活跃
ansible特性:
模块化设计,调用特定的模块完成特定的任务
基于python语言实现
-- paramiko
-- PyYAML(半结构化语言)
-- jinja2
其模块支持JSON等标准输出根式,可以采用任何变成语言重写
部署简单
主从模式工作
支持自定义模块
支持playbook
易于使用
支持多层部署
支持异构IT环境
工作流程:
软件依赖关系
要求python2.6或python2.7
对于被托管主机
-- ansible模式通过ssh协议管理机器
-- 被管理主机要开启ssh服务,允许ansible主机登陆
-- 在托管节点上也需要安装python2.5或以上的版本
-- 如果托管节点上开启了selinux,需要安装libselinux-python
安装ansible:
ansible源码下载
-- git clone git://github.com/ansible/ansible.git
-- yum install python-setuptools python-devel
-- python setup.py buils
-- python setup.py install
pip方式安装
-- pip install ansible
yum扩展安装简单,自动解决依赖关系
-- http://mirror.centos.org/.../.../extras/
-- yum -y install ansible
安装以后验证
ansible --version
ansible 命令基础
-- -M 指定模块路径
-- -a 模块参数
-- -k 使用交互式登录密码
-- -e 定义变量
-- -v 详细信息
-- -m 使用模块,默认使用command模块
列出要执行的主机:
ansible all --list-hosts
批量检测主机
ansible all -m ping
批量执行命令
ansible all -m command -a “id” -k
ansible-doc
-- 模块的手册 相当于shell的man 很重要很重要
-- ansible-doc -l 列出所有模块
ping 模块
-- 测试网络连通性
-- 注: 测试ssh的连通性
ansible 主机名 -m ping
说白了 常用命令就一条 ansible -m 主机名 -a “命令” 做之前必须ssh免密