Ansible

Ansible:

(1)介绍


    运维工作:系统安装(物理机、虚拟机)--> 程序包安装、配置、服务启动 --> 批量操作 --> 程序发布  --> 监控

        OS Provisioning(操作系统配置):

            物理机(bare metal):PXE、Cobbler(二次封装pxe技术)

            虚拟机(virtual machine):Image Templates

        Configration:(使用工具)

            puppet (ruby)

            saltstack (python)

            chef

            cfengine

        Command and Control(命令与控制):

            fabric

            func

        预发布验正:

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

(2)程序发布

            人工智能(手动发布)

            脚本

            发布程序(专门负责运维程序)

        要求:

                1、不能影响用户体验;

                2、系统不能停机;

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

            灰度发布:

                主机

                用户

                发布路径:

                    /webapps/tuangou

                    /webapps/tuangou-1.1

                    /webapps/tuangou-1.2

                在调度器上下线一批主机(标记为维护模式) --> 关闭服务 --> 部署新版本的应用程序 --> 启动服务 --> 在调度器上启用这一批服务器;

                自动化灰度发布:脚本、发布平台;

(3)运维工具的分类:

    agent: puppet, func

    agentless: ansible, fabric

        ssh

(4)ansible:轻量化

    特性:   

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

            基于Python语言实现,由Paramiko、PyYAML和Jinja2三个关键模块;

            部署简单,agentless;

           主从模式

            支持自定义模块

            支持Playbook

            幂等性(一个任务执行一遍,和多遍是一样的):

    安装:

        epel、ansible

            配置文件:

                /etc/ansible/ansible.cfg

                主机清单:

                    /etc/ansible/hosts

            主程序:

                ansible

                ansible-

                ansible-doc -l        所有可用模块

            ansible的简单使用格式:

                ansible HOST-PATTERN -m MOD_NAME -a MOD_APGS

(5)示例

Ansible1管理192.168.52.91,其余三台:92、93、94;

        生成秘钥,授权访问

            [root@Ansible1 ~]#ssh-keygen -t rsa -P ''

            [root@Ansible1 ~]#ssh-copy-id -i .ssh/id_rsa.pub root@192.168.52.92

            [root@Ansible1 ~]#ssh-copy-id -i .ssh/id_rsa.pub root@192.168.52.93

            [root@Ansible1 ~]#ssh-copy-id -i .ssh/id_rsa.pub root@192.168.52.94

            [root@Ansible1 ~]# ansible all -m ping

            192.168.52.93 | SUCCESS => {

                "changed": false,

                "ping": "pong"

            }

            192.168.52.94 | SUCCESS => {

                "changed": false,

                "ping": "pong"

            }

            192.168.52.92 | SUCCESS => {

                "changed": false,

                "ping": "pong"

            }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。