久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網
      最全最豐富的資訊網站

      Ansible自動化運維安裝與簡單使用

      Ansible是什么

      Ansible 簡單的說是一個配置管理系統(tǒng)(configuration management system)。你只需要可以使用 ssh 訪問你的服務器或設備就行。它也不同于其他工具,因為它使用推送的方式,而不是像 puppet 等 那樣使用拉取安裝agent的方式。你可以將代碼部署到任意數量的服務器上。

      Ansible能做什么

      ansible可以幫助我們完成一些批量任務,或者完成一些需要經常重復的工作。

      比如:同時在100臺服務器上安裝nginx服務,并在安裝后啟動它們。

      比如:將某個文件一次性拷貝到100臺服務器上。

      比如:每當有新服務器加入工作環(huán)境時,你都要為新服務器部署某個服務,也就是說你需要經常重復的完成相同的工作。 這些場景中我們都可以使用到ansible。

      Ansible特性

      ? 模塊化:調用特定的模塊,完成特定任務
      ? 有Paramiko,PyYAML,Jinja2(模板語言)三個關鍵模塊
      ? 支持自定義模塊
      ? 基于Python語言實現
      ? 部署簡單,基于python和SSH(默認已安裝),agentless
      ? 安全,基于OpenSSH
      ? 支持playbook編排任務
      ? 冪等性:一個任務執(zhí)行1遍和執(zhí)行n遍效果一樣,不因重復執(zhí)行帶來意外情況
      ? 無需代理不依賴PKI(無需ssl)
      ? 可使用任何編程語言寫模塊
      ? YAML格式,編排任務,支持豐富的數據結構
      ? 較強大的多層解決方案

      Ansible架構

      Ansible自動化運維安裝與簡單使用

      Ansible工作原理

      Ansible自動化運維安裝與簡單使用

      Ansible主要組成部分功能說明

       ? PLAYBOOKS:
                  任務劇本(任務集),編排定義Ansible任務集的配置文件,由Ansible順序依次執(zhí)行,通常是JSON格式的YML文件
      ? INVENTORY:
                  Ansible管理主機的清單/etc/anaible/hosts
      ? MODULES:
                  Ansible執(zhí)行命令的功能模塊,多數為內置的核心模塊,也可自定義,ansible-doc –l 可查看模塊
      ? PLUGINS:
                  模塊功能的補充,如連接類型插件、循環(huán)插件、變量插件、過濾插件等,該功能不常用
      ? API:
                  供第三方程序調用的應用程序編程接口
      ? ANSIBLE:
                  組合INVENTORY、 API、 MODULES、PLUGINS的綠框,可以理解為是ansible命令工具,其為核心執(zhí)行工具

      注意事項

      ? 執(zhí)行ansible的主機一般稱為主控端,中控,master或堡壘機
      ? 主控端Python版本需要2.6或以上
      ? 被控端Python版本小于2.4需要安裝python-simplejson
      ? 被控端如開啟SELinux需要安裝libselinux-python
      ? windows不能做為主控端

      安裝Ansible

      以CentOS為例

      安裝環(huán)境查看

      Ansible自動化運維安裝與簡單使用

      安裝

      yum -y install ansible

      查看版本

      Ansible自動化運維安裝與簡單使用

      Ansible 功能詳解

      配置文件

      配置文件或指令 描述
      /etc/ansible/ansible.cfg    主配置文件,配置ansible工作特性
      /etc/ansible/hosts  主機清單
      /etc/ansible/roles/ 存放角色的目錄
      /usr/bin/ansible    主程序,臨時命令執(zhí)行工具
      /usr/bin/ansible-doc    查看配置文檔,模塊功能查看工具
      /usr/bin/ansible-galaxy 下載/上傳優(yōu)秀代碼或Roles模塊的官網平臺
      /usr/bin/ansible-playbook  定制自動化任務,編排劇本工具
      /usr/bin/ansible-pull  遠程執(zhí)行命令的工具
      /usr/bin/ansible-vault  文件加密工具
      /usr/bin/ansible-console    基于Console界面與用戶交互的執(zhí)行工具

      Ansible 配置文件

       Ansible 配置文件/etc/ansible/ansible.cfg (一般保持默認)
      ? [defaults]
      ? #inventory = /etc/ansible/hosts # 主機列表配置文件
      ? #library = /usr/share/my_modules/ # 庫文件存放目錄
      ? #remote_tmp = $HOME/.ansible/tmp #臨時py命令文件存放在遠程主機目錄
      ? #local_tmp = $HOME/.ansible/tmp # 本機的臨時命令執(zhí)行目錄
      ? #forks = 5 # 默認并發(fā)數
      ? #sudo_user = root # 默認sudo 用戶
      ? #ask_sudo_pass = True #每次執(zhí)行ansible命令是否詢問ssh密碼
      ? #ask_pass = True      #連接時提示輸入ssh密碼
      ? #remote_port = 22    #遠程主機的默認端口,生產中這個端口應該會不同
      ? #log_path = /var/log/ansible.log #日志
      ? #host_key_checking = False # 檢查對應服務器的host_key,建議取消注釋。也就是不會彈出

      試驗規(guī)劃,兩臺主機192.168.56.11作為主控端,192.168.56.12被控端

      修改配置文件/etc/ansible/hosts

      [webservers]
      192.168.56.11
      192.168.56.12

      webserves代表一個組,下面有兩臺主機

      執(zhí)行命令

      ansible 192.168.56.11 -m ping

      執(zhí)行失敗

      Ansible自動化運維安裝與簡單使用

      非常抱歉哦,竟然是失敗的。為什么呢?Ansible是基于ssh進行工作的,那么當ssh一臺遠程主要的時候,是不是需要輸入密碼呢?可是這一條指令并沒有提示輸入口令呢

      加參數-k輸入密碼

      Ansible自動化運維安裝與簡單使用

      設置免密碼登錄(參考如下)

      —————————-參考如下—————————-

      兩臺Linux主機需要從其中一臺ssh至另外一臺需要手動輸入密碼,通過以下設置免密碼登錄

      生成秘鑰

      ssh-keygen -t rsa

      會在文件夾/root/.ssh下面生產公鑰和私鑰

      Ansible自動化運維安裝與簡單使用

      把秘鑰復制至需要免密登錄的主機,第一次拷貝需要輸入一次密碼

      ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.1.3.4

      會在遠程主機的文件夾/root/.ssh下面自動生成文件authorized_keys 文件內容為公鑰id_ras.pub一樣

      Ansible自動化運維安裝與簡單使用

      也可以直接把公鑰復制編輯需要遠程登錄的主機的/root/.ssh/authorized_keys文件

      驗證能否免密登錄

      ssh 10.1.3.4

      —————————-到此位置—————————-

      Ansible自動化運維安裝與簡單使用

      就不會提示需要輸入密碼了

      Ansible常用命令語法

      ansible <host-pattern> [-m module_name] [options]
      指令 匹配規(guī)則的主機清單 -m 模塊名 選項
       
      –version 顯示版本
      -a 模塊參數(如果有)
      -m module 指定模塊,默認為command
      -v 詳細過程 –vv -vvv更詳細
      –list-hosts 顯示主機列表,可簡寫–list
      -k, –ask-pass 提示連接密碼,默認Key驗證
      -K,–ask-become-pass 提示使用sudo密碼
      -C, –check 檢查,并不執(zhí)行
      -T, –timeout=TIMEOUT 執(zhí)行命令的超時時間,默認10s
      -u, –user=REMOTE_USER 執(zhí)行遠程執(zhí)行的用戶
      -U, SUDO_USER, –sudo-user 指定sudu用戶
      -b, –become 代替舊版的sudo 切換

      ansible-doc: 顯示模塊幫助
      ansible-doc [options] [module…]
       
      -a 顯示所有模塊的文檔
      -l, –list 列出可用模塊
      -s, –snippet 顯示指定模塊的簡要說明
       
      例子:#ansible-doc ping
       
      由于ansible的模塊有1378個(2.4.2.0),并且一直在持續(xù)更新。因此,這個指令必須要掌握的。
      #ansible-doc -l |wc -l
      1378

      Ansible 的命令執(zhí)行過程以 ansible all -m command -a ‘ls -l /’ -vvv 這條命令為例,根據顯示的信息時行解讀

      1. 加載自己的配置文件,默認/etc/ansible/ansible.cfg
          Using /etc/ansible/ansible.cfg as config file
       
      2.匹配主機清單
          Parsed /etc/ansible/hosts inventory source with ini plugin
       
      3. 加載指令對應的模塊文件,如command,生成.py的文件到本機的臨時目錄,這個目錄就是在/etc/ansible/ansible.cfg定義的
          Using module file /usr/lib/python2.7/site-packages/ansible/modules/commands/command.py
          PUT /tmp/tmp4JvsLH TO /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/command.py
       
      4. 通過ansible將模塊或命令生成對應的臨時py文件,并將該文件傳輸至遠程服務器的對應執(zhí)行用戶$HOME/.ansible/tmp/ansible-tmp-數字/XXX.PY文件,
          這個目錄就是在/etc/ansible/ansible.cfg定義的
          ( umask 77 && mkdir -p “` echo /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861 `” ….)
          sftp> put /tmp/tmp4JvsLH /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/command.pyn’
       
      5. 給文件+x 權限
          ‘chmod u+x /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/ /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/command.py && sleep 0’
       
      6. 執(zhí)行并返回結果
          ‘/usr/bin/python /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/command.py;
       
      7. 刪除臨時py文件,sleep 0退出
          rm -rf “/root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/” > /dev/null 2>&1 && sleep 0
       
      8.斷開遠程主機連接
          ‘Shared connection to 7-db-3.hunk.tech closed.rn’)

      執(zhí)行結果狀態(tài)

       ? 綠色:執(zhí)行成功并且不需要做改變的操作
       
      ? ×××:執(zhí)行成功并且對目標主機做變更
       
      ? 紅色:執(zhí)行失敗

      贊(0)
      分享到: 更多 (0)
      網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號