anisble使用及常用模块

###### Ansible总结

##### 运维工作:  系统安装(物理机、虚拟机)-->程序包安装、配置、服务启动 --> 对主机批量操作 --> 程序版本更新 -->监控

    OS Provisioning:

        物理机:PXE、Cobbler

        虚拟机:Image、Templates

    Configuration:

        puppet工具(ruby开发)

        Saltstack(python开发)

        chef

    Command and Concrol:

        fabric

    预发布环境验证:

        新版本的代码先发布到内网测试服务器(跟线上环境配置完全相同,只是未介入到调度器);

    程序发布:

        不能影响用户体验;

        系统不能停机;

        不能导致系统故障或造成系统完全不可用;

    灰度发布:

        一种发布模式;在调度器上下线一批主机 --> 关闭服务 --> 部署新版本的应用程序 --> 启动服务 --> 在调度器上启用这一批主机;

        自动化灰度发布机制:可通过脚本或公司自己的发布平台发布;

###### 运维工具的分类 :

    agent:代理工具:puppet,func

    agentless:无代理工具:ansible,fabric;agentless类工具必须依赖ssh服务;

###### ansible的模块化:

    模块化:调用特定的模块来完成特定的任务;

    基于python语言实现,由paramaiko、pyYAML和jinja2三个关键模块

    部署简单:agentless类工具

    主从模式:

    支持自定义模块:

    支持playbook:

###### ansible密钥登陆

    ansible是通过ssh实现配置管理、应用部署、任务执行等功能,因此,需要事先配置ansible端能基于密钥认证的方式联系各个被管理节点;

        ansible管理端做密钥:ssh-keygen -t rsa -P ‘’

        将密钥拷贝到各个被控节点:ssh-copy-id  [email protected]

        ssh远程连接测试:ssh [email protected] ##应该不需要密码就可以直接远程进被控端

######  ansible安装

    ## wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

    ## yum -y install ansible

    配置文件:/etc/ansible/ansible.cfg

    主机清单:/etc/ansible/hosts

###### ansible的简单使用

    1、修改/etc/ansible/hosts文件,添加ansible被控主机或被控组;

        ##必须先在hosts文件添加主机ip,不然远程控制被控端时会报错: [WARNING]: No hosts matched, nothing to do

    2、执行一个简单的ansible命令:

        在ansible控制端执行:

        ansible 192.168.4.41 -m command -a 'ifconfig'会显示被控端的网卡信息

###### ansible常用模块

###### 可以使用‘ansible-doc -s 模块名 ’来查看模块的详细用法

    ansible用法:ansible  [-f forks] [-m module_name] [-a args]

    user模块:

        示例:ansible test -m user -a 'name=wuyongfeng state=present system=yes'

            在test组包含的被控端上创建用户,name为wuyongfeng;

            state=present表示创建用户,state=absent时表示删除用户;

            system=yes表示创建系统用户;

    group模块:

        示例:ansible test -m group -a 'name =t

你可能感兴趣的:(anisble使用及常用模块)