iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 10
0
DevOps

30 天入門 Ansible 及 Jenkins-CI系列 第 10

[Day 10] 配置 ansible.cfg

  • 分享至 

  • xImage
  •  

===== 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.cfg

什麼是 ansible.cfg?

從上面的結果中,我們可以發現雖然 playbook 已經成功被執行,但 Ansible 並沒有辦法找到我們剛剛新建 role 的位置。因此,我們必須透過設定 Ansible 的配置檔案 - ansible.cfg 來設置 role 路徑 (path)

新增一個檔案 ansible.cfg 並加入以下內容:

[ironman]
roles_path = ./roles

雖然只有短短兩行,但 Ansible 就會依此路徑去找到我們 role 的存放位置。接著重新執行我們的 playbook:

PLAY [ironman] *****************************************************************

TASK [setup] *******************************************************************
ok: [ironman]

TASK [curl : install curl] *****************************************************
changed: [ironman]

PLAY RECAP *********************************************************************
ironman                    : ok=2    changed=1    unreachable=0    failed=0

看起來好像成功了!現在讓我們登入進去遙控節點看看是否 cURL 已經可以運作了:

$ curl -I http://localhost:8080

HTTP/1.1 403 Forbidden
Date: Fri, 09 Dec 2016 09:03:44 GMT
X-Content-Type-Options: nosniff
Set-Cookie: JSESSIONID.4689751a=1o67mouadl3zhq80h5b2xxxu6;Path=/;HttpOnly
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: text/html;charset=UTF-8
X-Hudson: 1.395
X-Jenkins: 2.19.4
X-Jenkins-Session: e765255c
X-You-Are-Authenticated-As: anonymous
X-You-Are-In-Group:
X-Required-Permission: hudson.model.Hudson.Administer
Content-Length: 677
Server: Jetty(9.2.z-SNAPSHOT)

先姑且不論結果是否是我們要的,至少我們現在確定 cURL 已經被 Ansible 正確安裝到遙控節點上了!

若點進官方配置文件的說明頁面,可以發現除了 roles_path 之外還有一大堆參數可以依據使用者的需求進行非常有彈性的配置。其中值得注意的是,在這個示範裡面我是將 ansible.cfg 這個配置檔案置於我們工作資料夾之下,目前具體資料夾結構如下:

workspace
├── Vagrantfile
├── ansible.cfg
├── inventory
├── playbook.yml
└── roles
    └── curl
        └── tasks
            └── main.yml

但從官方文件中,我們可以發現除了將配置檔案放置於工作目錄底下外,還有其他幾種不同的配置方式:

  1. 設置環境變量 (ANSIBLE_CONFIG)
  2. 置於當前目錄下的 ansible.cfg(這次範例中使用的方法)
  3. 置於根目錄下的 .ansible.cfg
  4. 置於 /etc/ansible/ 下的 ansible.cfg

若我們同時分別有不同的配置文件存在在系統中,Ansible 會依照上述順序逐一查找文件,若找到其中一個,就會依其設定進行配置,並不再繼續查找。


上一篇
[Day 09] 撰寫第一個 Ansible Role
下一篇
[Day 11] 建立 Ansible Role 的依賴關係
系列文
30 天入門 Ansible 及 Jenkins-CI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言