• linux自动化运维--ansible


    linux自动化分为三个层次

      1.OS provisioning 自动化安装系统  

        常用软件:cobbler(red hat 用、PXE

      2.OS config  自动化配置系统

        常用软件:cfengine,puppet,saltstack chef

      3.OS deployment 深度定制自动化

        常用软件:func(C/S,ssl)、fabric(ssh,python)、ansible

    ansible:由于可以完成三个层次的事情所以比较强大。(基于ssh去连接到主机,所以先要认证)

      ansible特性:     

        部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
        默认使用SSH协议对设备进行管理;
        有大量常规运维操作模块,可实现日常绝大部分操作;
        配置简单、功能强大、扩展性强;
        支持API及自定义模块,可通过Python轻松扩展;
        通过Playbooks来定制强大的配置、状态管理;
        轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
        提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。

      ansible的架构及组件

        

          Ansible:Ansible核心程序。
          HostInventory:记录由Ansible管理的主机信息,包括端口、密码、ip等。
          Playbooks:“剧本”YAML格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。
          CoreModules:核心模块,主要操作是通过调用核心模块来完成管理任务。
          CustomModules:自定义模块,完成核心模块无法完成的功能,支持多种语言。
          ConnectionPlugins:连接插件,Ansible和Host通信使用

      安装ansible:yum安装

        

      安装ansible:

          1.下载epel源到/etc/yum.repos.d

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

          2.yum clean all

          3. yum makecache

          4.yum install ansible -y

      使用ansible准备

        1.配置主机:

          在安装有ansible服务器上/etc/hosts 文件中添加主机

            格式:

                [机组名]          例:  [websevices]

                机组ip或主机名          192.168.29.129

                                  www.zrq1.com

         2.配置认证:这里由于ansible需要到客户机上执行操作,所以需要对于客户机有登录权限,最好设置免密登录

              1.创建证书

                #ssh-keygen -t   rsa  -P ''

              2.拷贝证书

                #ssh-copy-id -i ./ssh/id_rsa.pub  root@192.1168.1.162

        3.测试是否成功

            #ansible  all -m  pinng  :像所有的客户机发送ping测试

      ansible配置文件:

          hosts:配置主机群

      ansible基本语法:    

          ansible 

            ansible <host-pattern> [options]

              host-pattern:在host中定义的主机群      

                  all:所有主机

              options:

                  -m:后面接模块

                    如果直接执行命令,不用模块可以省略

                       例如:ansible all   -a  ‘service httpd status’

                      查看客户机的httpd服务状态

                  -a:后面接模块的命令

                  ansible-doc  -l:列出所有模块

                    常用模块:copy、cron、acl、group、user

                  ansible-doc -s  模块名:查看指定模块的参数 

              例:ansible  webserver  -m copy  -a  “src=/root/zrq.sh dest=/tmp/zrq/”   注意:命令不支持管道

                 用复制模块复制文件到websever服务器群的目录中

          ansible相关命令:

            ansible-doc

                -l:查看所有模块

                    主要模块:

                        acl:

                        at:

                        cron

                        copy

                        command:

                        user

                        group

                        yum

                        service

                        file

                -s:查看指定模块的参数

                    例如:ansible-doc -s copy             

          ansible的playbook模块:

              1.基于YAML(一种文本格式)语言:

                 ymal文件扩展名通常为。yaml

                -:表示

                空格:表示

                每个任务都有名称  

                注意缩进

              2.playbooks:基于yaml语言格式的一个.yaml文件

                示例:(注意:千万注意缩进以及对其,特别是-)

                #vim test.yaml             

                - hosts: all
                  remote_user: root
                  tasks:
                  - name: ensure apache status
                  service:
                 name: httpd
                    state: status

                  

  • 相关阅读:
    nginx预防常见攻击
    nginx性能优化(针对于高并发量仅供参考,并不是方案)
    nginx平滑升级(1.14--1.15)
    LAMP动静分离安装(源码安装)
    洛谷-P1098 字符串的展开
    洛谷-P1086 花生采摘
    洛谷-P1042 乒乓球
    洛谷-P1031 均分纸牌
    洛谷-P1023 税收与补贴问题
    洛谷-P1125 笨小猴
  • 原文地址:https://www.cnblogs.com/kevinzr/p/13066578.html
Copyright © 2020-2023  润新知