星期一, 11月 16, 2015

Ansible 小記 - ping module 與 command module

Ansible 小記 - ping module 與 command module

接下來就開始介紹 Ansible Module

Ansible 的 Module 可以在官網找到所有的 Module, 這邊是按照分類的 Index http://docs.ansible.com/ansible/modules_by_category.html

今天先來介紹兩個 module

首先是 ping module
ping

這大概是我在使用 Ansible 第一個會執行的 module, 測試與遠端主機是否有連線成功

使用 ansible 的指令語法就是
ansible  對象  -m  module名稱
  • -m 是 moudle 的意思

範例為對所有的主機執行 ping module, 成功就會回覆 pong
$ ansible  all   -m   ping
cenic_slave | success >> {
   "changed": false,
   "ping": "pong"
}


接下來介紹  command module
command module 適合執行單一指令, 沒有做其他處理的狀況

command
  • 執行 command, 但是如果是會用到 pipe | 這樣的方式就要透過 shell module 來執行
    • 例如
      • ansible  testserver  -m command  -a  'uptime'
    • 但是如果要執行指令進行二次處理
      • ansible  testserver  -m  command  -a  'dpkg -l | grep nginx'   這樣是不行的, 要使用 shell module

範例
ansible 指令方式

ansible  對象  -m  module名稱  -a  “參數
  • -m 是 module 的意思
  • -a  是 module arguments

所以這邊對機器執行 command module 去執行 uptime 指令
$ ansible  cenic_master   -m   command   -a   'uptime'
cenic_master | success | rc=0 >>
06:38:13 up 20 days,  2:08,  2 users,  load average: 0.00, 0.01, 0.05

範例
ansible-playbook 方式

建立一個 yml 檔案, debug 的部分日後再講
$ vi  4_output_of_command.yml
- name: show return value of command module
 hosts: testserver
 tasks:
   - name: capture output of id command
     command: id -un
     register: login
# 使用 變數 {{ xxx.stdout }} 將輸入導到螢幕前
# - debug 後面的 msg 也是有規定名稱, 不能用自定命名
   - debug: msg="Logged in as user {{ login.stdout }}"

使用 ansible-playbook 指令執行

使用 ansible 的指令語法就是

ansible-playbook  指定的yml檔案

$ ansible-playbook  4_output_of_command.yml

PLAY [show return value of command module] ************************************

GATHERING FACTS ***************************************************************
ok: [cenic_master]

TASK: [capture output of id command] ******************************************
changed: [cenic_master]

TASK: [debug msg="Logged in as user {{ login.stdout }}"] **********************
ok: [cenic_master] => {
   "msg": "Logged in as user maxhuang"
}

PLAY RECAP ********************************************************************
cenic_master               : ok=3    changed=1    unreachable=0    failed=0   

okay, 今天先到這邊

~ enjoy it

沒有留言: