===== 2018 年版本已更新 =====
2018 鐵人賽傳送門:https://ithelp.ithome.com.tw/users/20103346/ironman/1473
GitBook 傳送門:https://www.gitbook.com/book/tsoliangwu0130/learn-ansible-and-jenkins-in-30-days/details
=========================
在 Ansible 裡,我們會把所有機器的角色做以下兩種區分:
對於這兩種不同的對象,在安裝 / 使用 Ansible 的時候也有不同的需求。
由於 Ansible 是一套開源的軟體,所以在目前大部分的主流作業系統上都已經可以透過對應的套件管理 (package manager) 進行安裝了。以下列出幾個我主要比較常用作業系統的安裝方法:
Pip Installs Packages / Pip Installs Python (pip - 官方推薦)
sudo pip install ansible
``
sudo brew install ansible
``
Yellowdog Updater, Modified (yum)
sudo yum -y install epel-release
sudo yum -y update
sudo yum -y install ansible
``
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
``
在 /etc/apt/sources.list
中加入下面這行:
eb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
``
終端機中執行:
``shell
sudo apt-get update
sudo apt-get install ansible
``
安裝好以後,確認 Ansible 已經安裝完成:
$ ansible --version
ansible 2.2.0.0
config file =
configured module search path = Default w/o overrides
不需要!透過 Ansible 管理的管理節點完全不需要安裝 Ansible。如上個章節所述,我們只需要確保這個管理節點可以透過 SSH 與控制主機溝通,並已安裝 Python 2.6 以上的版本就可以透過控制主機管理了。
在編寫程式的時候,我都會習慣去找對應語言的 linter 來習慣該語言的風格。雖然 Ansbile 並不是一種程式語言,但它也有一個對應的 linter - Ansible-lint。我會建議讀者可以安裝這個小工具,它可以幫助你確保寫出來的腳本品質是有一定水準的。
$ sudo pip install ansible-lint
檢查版本:
$ ansible-lint --version
ansible-lint 3.4.7
看起來使用方法挺簡單的!又上了一課啊!!!
Show the hello_world.yml
.
$ cat hello_world.yml
---
- name: say 'hello world'
hosts: all
tasks:
- name: echo 'hello world'
command: echo 'hello world'
register: result
- name: print stdout
debug:
msg: "{{ result.stdout }}"
- debug: var=result
Run the ansible-lint
.
$ ansible-lint hello_world.yml
[ANSIBLE0002] Trailing whitespace
hello_world.yml:8
# ===========================================================
[ANSIBLE0012] Commands should not change things if nothing needs doing
hello_world.yml:16
Task/Handler: echo 'hello world'
哈哈哈沒錯,Ansible-lint 真的是一個糾正習慣的好幫手~
我個人在 Vim 上是有用 syntastic plugin,當我一存檔時,會幫我檢查些基本的語法錯誤。:P