mac上通過ansible來管理服務(wù)器

前言

ansible是一款很強(qiáng)大的運(yùn)維工具, 隨著微服務(wù)和devops的加強(qiáng),有效的利用ansible可以大大提高運(yùn)維效率

安裝

mac上安裝ansible非常簡單

brew instsall ansible

安裝完成后,可以執(zhí)行ansible --version來查看信息, 可以看到我們安裝的ansible版本是2.4.2.0

配置文件

創(chuàng)建一個(gè)ansible的文件夾,然后添加文件ansible.cfg, 里面配置的ansible的基本配置,在這個(gè)目錄下執(zhí)行ansible命令, 默認(rèn)是讀取的這個(gè)文件里面的內(nèi),讀取配置文件的順序是:

* ansible.cfg (in the current directory)
* ANSIBLE_CONFIG (an environment variable)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

inventory目錄

創(chuàng)建inventory目錄, 里面加入hosts文件,來對(duì)機(jī)器進(jìn)行管理和設(shè)置。在運(yùn)行的時(shí)候 通過 ansible -i inventory 來進(jìn)行指定,ansible會(huì)讀取里面的hosts文件,另外可以定義 host_varsgroup_vars目錄, 來根據(jù)主機(jī)和組來定義變量,使得變量更加靈活。

role.yml文件

role.yml是一個(gè)入口文件,ansible-playbook命令可以通過-e傳入?yún)?shù)到role.yml里面,然后role.yml根據(jù)傳入的參數(shù),執(zhí)行對(duì)應(yīng)的roles文件夾里面的項(xiàng)目:
例子:
ansible-playbook -i inventory -e target=all -e role=ping role.yml
上面的命令,表示讀取inventory文件夾里面的hosts,把role.yml里面的target替換成all,把role替換成ping,來進(jìn)行執(zhí)行。

roles目錄

這個(gè)目錄下面把不同的操作按子目錄進(jìn)行分離,通過上面的role傳入的參數(shù),選擇對(duì)應(yīng)名稱的子目錄,比如上面role=ping,則就在下面找到ping的目錄,進(jìn)行后續(xù)對(duì)應(yīng)的操作。

后面的操作常用的主要有

  • tasks 表示執(zhí)行的任務(wù)
tasks是從上到下順序執(zhí)行,如果中間發(fā)生錯(cuò)誤,那么整個(gè)playbook會(huì)中止。你可以改修文件后,再重新執(zhí)行。
每一個(gè)task的對(duì)module的一次調(diào)用。使用不同的參數(shù)和變量而已。
每一個(gè)task最好有name屬性,這個(gè)是供人讀的,沒有實(shí)際的操作。然后會(huì)在命令行里面輸出,提示用戶執(zhí)行情況。
  • handlers 表示相應(yīng)的事件
Handlers里面的每一個(gè)handler,也是對(duì)module的一次調(diào)用。而handlers與tasks不同,tasks會(huì)默認(rèn)的按定義順序執(zhí)行每一個(gè)task,handlers則不會(huì),它需要在tasks中被調(diào)用,才有可能被執(zhí)行。
Tasks中的任務(wù)都是有狀態(tài)的,changed或者ok。 在Ansible中,只在task的執(zhí)行狀態(tài)為changed的時(shí)候,才會(huì)執(zhí)行該task調(diào)用的handler,這也是handler與普通的event機(jī)制不同的地方。
  • templates 表示模版文件,模版中可以使用對(duì)應(yīng)的變量,讀取vars里面的變量
  • vars 表示變量文件,可以定義變量
  • files 定義文件

學(xué)習(xí)

可以通過具體的例子來進(jìn)行學(xué)習(xí), 好的學(xué)習(xí)例子就是官方提供的example
地址: https://github.com/ansible/ansible-examples

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容