ansible自动化运维工具

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免密

                 

原文地址:https://www.cnblogs.com/wengzhenqi/p/10990276.html