about 4 years ago

最近在自動化的工作上嘗試使用 Ansible。會選擇它,主要的原因是,它是使用我最熟悉的語言 Python 寫的。

特色

  1. Made in Python。
  2. 被操控的節點 (Managed node) 只需要 Python 跟 SSH,夠單純。
  3. 用 YAML 寫劇本 (Playbook) 簡單易讀好維護。

安裝

Control Machine (操縱端)

$ pip install paramiko PyYAML jinja2 httplib2 ansible

是不是覺得裝太少,怪怪的?

Managed Node (被操縱端)

基本上,Ubuntu 灌好,裝完 openssh-server 就可以了。

初步使用

使用前

為了確保接下來的實驗能順利進行,請先確認 Managed Node 已經植入了適當的 authorized_keys。簡單的說,就是 ssh 該機器完全不需要打密碼。

執行單一指令

首先,隨意建立一個工作目錄。在此目錄下新增一個 hosts 的檔案。這個檔案稱做 Inventory File。主要的功能是定義 節點變數

hosts
[test]
172.16.11.11
用法
ansible -m [module] -i [inventory file] -u [remote user] <target host>
  • -m - 所有能使用的 module,都列在官網上。也有使用的範例。
  • -i - 指定參照的 inventory file,本例是 hosts
  • -u - 指定用來登入該節點的帳號
  • target host - 從 inventory 中,挑選出要本次指令執行的對象

現在就可以試試我們的第一個指令 ping

$ ansible -m ping -i hosts -u root test
172.16.11.11 | success >> {
    "changed": false,
    "ping": "pong"
}

接著,我們來看看 Ansible 劇本

← Python 利用 Selenium 做無頭 (headless) 自動化測試 Ansible 劇本 →
 
comments powered by Disqus