1. 程式人生 > >Ansible 學習記錄 (二)基礎介紹

Ansible 學習記錄 (二)基礎介紹

產品 本機 代碼 路由器 軟件 機器數 任務 提供服務 比較

Ansible的優點:
  Agentless (去中心化)
  Stupied Simple
  SSH by default
  YAML no code



Ansible 使用場景:

  文件傳輸,
  (1)scp mv cp rsync
  命令執行:
  (2)
  剩下的其他命令
    安裝http服務:
    安裝()
    配置()
    啟動服務(本機的服務啟動)
    讓服務對用戶提供服務(路由器配置,iptables)



Ansible應用場景分析:

  (1)、Dev開發環境
      使用者:程序員
       功能:程序員開發軟件測試Bug的環境
      管理者:千萬不能是運維,一定要是程序員自己
  (2)、Dev測試環境
      使用者:測試工程師
       功能:測試經過Dev測試通過的軟件的功能
      管理者:運維工程師
       備註:測試環境往往有多套;(測試環境滿足測試功能,不宜過多)

          (1)測試同學希望測試環境有多套;
             公司的產品多產品線開發,即多個版本,意味著多個版本同步測試
          (2)通常情況下,測試環境有多少套和產品線保持一致即可
  (3)Dev發布環境(代碼發布機,有些公司是堡壘機(安全憑證))
      使用者:運維工程師
       功能:發布代碼至生產環境
      管理者:運維工程師(有經驗)
      發布機:往往需要有2臺(主備)
  (4)、DEV生產環境
      使用者:運維,只能是運維,(極少數情況下會開放權限給核心開發人員,極少數公司將該環境權限完全開放給開發人員並讓開發人員維護)
       功能:對用戶提供公司的產品服務
      管理者:只能是運維
      生產環境服務器數量,一般比較多,且應用非常重要,往往需要自動化工具協助部署配置應用,機器數量具體和公司業務規模相關
  (5)灰度環境:
      使用者:運維
       功能:在全量發布代碼將代碼面向少量精準用戶發布的環境
           案例:
              大家手頭有100臺服務器,先發布應用到其中的10臺,這10臺服務器就是灰度服務器。
      管理者:只能是運維
      為什麽需要灰度環境:往往該版本功能變更較大,再全量發布至所有服務器



Ansible1.x和2.x的區別:
  (1)、1.9和2.0的API調用方式發生變化,1.9原有的API調用方式2.0不再支持
  (2)、2.0增加了重要功能,ansible-console
  (3)、2.0模塊增加很多,500多個模塊的數量



重要文件和目錄:
  /etc/ansible
  /etc/ansible/ansible.cfg 主機配置文件
  /etc/ansible/hosts 執行主機配置文件
  /etc/ansible/roles Roles默認保存目錄
  /usr/bin/ansible 臨時命令執行工具
  /usr/bin/ansible-console 命令執行控制臺,可與用戶進行交互
  /usr/bin/ansible-doc 模塊功能查詢工具
  /usr/bin/ansible-galaxy Roles模塊的官方網絡平臺
  /usr/bin/ansible-playbook 定制自動化任務的編排工具
  /usr/bin/ansible-pull ansible 拉模式
  /usr/bin/ansible-vault 加密程序
  /usr/lib/python2.7/site-packages/ansible Python路徑信息



Ansible 高級自定義插件目錄(需要python基礎)
  action
  callback
  connection
  filter
  lookup
  vars 

Ansible 學習記錄 (二)基礎介紹