作者 主題: Ansible 練習小記 - 簡單的 ansible 指令練習  (閱讀 1189 次)

0 會員 與 1 訪客 正在閱讀本文。

sakana

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 2582
  • 性別: 男
    • 檢視個人資料
    • sakananote
原文 http://sakananote2.blogspot.com/2015/10/ansible-ansible.html


記錄一下相關練習

以下的練習,  前提是

    SSH 可以使用 Key 登入 Remote Hosts


例如 在 Control Machine 上面( Mac / Linux )

$ ssh  -l   使用者名稱   -i   key檔案位置  RemoteHost_IP
可以直接登入

SSH 建立以及複製到遠端可以參考 這篇

建立 playbooks  目錄來進行之後練習

$ mkdir   playbooks

Lab:  簡單的 ansible 指令練習

建立遠端主機相關資訊
$ vi  hosts
代碼: [選擇]
# syntax: servername  options
# ansible_ssh_host -- Remote Host IP
# ansible_ssh_user -- Remote SSH User Name
# ansible_ssh_private_key_file -- SSH Key
testserver   ansible_ssh_host=遠端主機IP   ansible_ssh_user=遠端使用者名稱


測試 ansible 指令, 這邊使用 ping 的 module
可以參考 http://docs.ansible.com/ansible/ping_module.html

$ ansible   testserver   -i   hosts   -m   ping
testserver | success >> {
    "changed": false,
    "ping": "pong"
}

$ ansible   all   -i   hosts   -m   ping
testserver | success >> {
    "changed": false,
    "ping": "pong"
}


根據上面的指令來驗證
ansible

    可以指定某台主機, 例如 testserver 或是全部 all
    -i 為 inventory 清單檔案所在
    -m 為 module name, 這個案例使用的是 ping



但是如果每台主機的使用者帳號還有 key 都是同一把, 那就可以建立 ansible.cfg 來設定成預設

Lab: 使用 ansible.cfg

建立 ansible.cfg 放在 playbook 目錄下
$ vi   ~/playbooks/ansible.cfg
代碼: [選擇]
[defaults]
# 主機清單的檔案, 這樣可以不用下 -i 選項指定
hostfile = hosts
# 遠端使用者名稱, 換成自己的使用者名稱
remote_user = cc
# SSH Key 位置, 換成自己的 key path
private_key_file = ~/.ssh/id_dsa

修改  ~/playbooks/hosts ( 因為 ansible.cfg 已經有設定 remote_user, 就不用重複設定 )

$ vi   ~/playbooks/hosts
代碼: [選擇]
# syntax: servername  options
# ansible_ssh_host -- Remote Host IP
# ansible_ssh_user -- Remote SSH User Name
# testserver   ansible_ssh_host=遠端主機IP   ansible_ssh_user=遠端使用者名稱
testserver   ansible_ssh_host=遠端主機IP

$ ansible   testserver    -m ping
testserver | success >> {
    "changed": false,
    "ping": "pong"
}



但是如果對象是要用兩種以上的 ssh key 來控制, 那就可以考慮把相關的設定寫在 hosts, 並利用 群組的做法
$ cat   hosts
代碼: [選擇]
ubuntu_utah ansible_ssh_host=遠端主機IP ansible_ssh_user=maxhuang ansible_ssh_private_key_file=~/id_ssh_rsa

ubuntu_cenic ansible_ssh_host=遠端主機IP ansible_ssh_user=maxhuang ansible_ssh_private_key_file=~/id_ssh_rsa

[geni]
ubuntu_utah
ubuntu_cenic

接下來嘗試使用 ansible 來安裝套件

Lab: 安裝套件

查詢套件是否安裝, 這邊使用 shell module
可以參考 http://docs.ansible.com/ansible/shell_module.html

$ ansible  ubuntu_utah   -m   shell   -a   "dpkg -l | grep nginx"
ubuntu_utah | FAILED | rc=1 >>


安裝套件
$ ansible ubuntu_utah  -s -m apt -a 'name=nginx update_cache=yes'

確認是否安裝
$ ansible ubuntu_utah  -m  shell  -a  "dpkg -l | grep nginx"
ubuntu_utah | success | rc=0 >>
ii  nginx                               1.4.6-1ubuntu3.3                    all          small, powerful, scalable web/proxy server


今天就先到這邊

~ enjoy it
專心投入研究才是王道!!
http://sakananote2.blogspot.com

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17292
    • 檢視個人資料
    • http://www.study-area.org
Re: Ansible 練習小記 - 簡單的 ansible 指令練習
« 回覆 #1 於: 2015-11-03 21:21 »
讚!等大大回來分享... ^_^