linux自動化運維--ansible

linux自動化分爲三個層次python

  1.OS provisioning 自動化安裝系統  linux

    經常使用軟件:cobbler(red hat 用、PXEweb

  2.OS config  自動化配置系統apache

    經常使用軟件:cfengine,puppet,saltstack chefvim

  3.OS deployment 深度定製自動化服務器

    經常使用軟件:func(C/S,ssl)、fabric(ssh,python)、ansible架構

ansible:因爲能夠完成三個層次的事情因此比較強大。(基於ssh去鏈接到主機,因此先要認證)運維

  ansible特性:     ssh

    部署簡單,只需在主控端部署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

相關文章
相關標籤/搜索