天天看點

Ansible-自動化運維工具介紹Ansible基礎介紹Ansible架構介紹Ansible調試環境搭建(Intellij IDE)Ansible使用小技巧Ansible二次開發小技巧

Ansible基礎介紹

我們在做系統運維時,很多時候需要SSH登陸到各個伺服器進行各種系統和包的安裝啟動及狀态檢查等操作。這些過程很繁瑣,而且操作的過程,結果及腳本代碼很零散不好管理,容易造成一些不必要的問題。Ansible正好是滿足了這個需求,把重複而繁瑣的運維操作通過簡潔易懂的YAML代碼來描述和執行。

Ansible的特點

  1. 簡潔易懂,功能豐富,擴充友善
  2. 隻需在主要端安裝,無需在被控端安裝Agent, 大大簡化了部署複雜性
  3. 預設使用SSH,不需要額外的安全架構
  4. YAML描述性語言,把部署過程展現為代碼,進而可以把部署過程納入代碼的版本管理

Ansible架構介紹

Ansible-自動化運維工具介紹Ansible基礎介紹Ansible架構介紹Ansible調試環境搭建(Intellij IDE)Ansible使用小技巧Ansible二次開發小技巧

-- 圖檔來源:

https://geekflare.com/ansible-basics/

上圖示範了如何通過Ansible對共有雲或私有雲的一堆機器進行運維操作。

子產品介紹:

  1. 核心:最中間的是Ansible自動化執行引擎,接受使用者輸入,排程各個子產品完成操作
  2. Inventory: 所有被控端的host的IP位址清單,可以按需進行分組歸類
  3. Playbooks: 配置中心,定義操作的流程(play), 每一個play可以定義一系列順序執行的task, 每個task定義具體執行的action
  4. module: action通過module封裝,module通過SSH推送到被控端執行,執行後自動删除
  5. plugin: 插件是指在主要端執行的擴充子產品,譬如logging, connection,資料轉換等功能擴充插件

Ansible調試環境搭建(Intellij IDE)

  1. 下載下傳最新代碼:

    $ git clone

    https://github.com/ansible/ansible.git --recursive
  2. check out到較新的穩定版本,如2.9.6

    $ git checkout v2.9.6

  3. 本地安裝

    $ source hacking/env-setup

  4. 本地調試伺服器

    Ansible的操作是通過SSH連接配接和操作遠端的機器,測試的時候不一定有合适的遠端機器可供操作。比較簡便的方式是讓SSH連接配接本地機器(localhost, 127.0.0.1),這就需要生成一套SSH key,并把key放到.ssh/authorized_keys

$ ssh-keygen # 一路回車
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys           
  1. 導入Intellij project (IDE需要先安裝python plugin)
  2. 将 ANSIBLE_ROOT/lib 目錄 Mark Directory as -> Source Root, 在IDE執行時能成功import内部的package
  3. debug 執行

Ansible使用小技巧

TBD

Ansible二次開發小技巧