ansible折騰記(二)

簡(jiǎn)述

  • 這篇主要實(shí)踐ansible的核心模塊 playbook
  • 何為playbook?Ansible-playbook是日常應(yīng)用中使用頻率最高的命令孝偎,類似于Linux中的sh或source命令,用來執(zhí)行系列任務(wù)己肮。其工作機(jī)制:通過讀取預(yù)先編寫好的playbook文件實(shí)現(xiàn)集中處理任務(wù)。Ansible-playbook命令后跟yml格式的playbook文件菌瘪,playbook文件存放了要執(zhí)行的任務(wù)代碼须眷,命令使用方式如下:
Ansible-playbook playbook.yml
<!--playbook.yml文件要提前編寫好,建議使用絕對(duì)路徑-->

playbook規(guī)則

運(yùn)行規(guī)則

  • 使用者使用Ansible或Ansible-Playbooks時(shí)鸣剪,在服務(wù)器終端輸入Ansible的Ad-Hoc命令集或Playbooks后组底,Ansible會(huì)遵循預(yù)選安排的規(guī)則將Playbooks逐步拆解為Play,再將Play組織成Ansible可以識(shí)別的任務(wù)筐骇,隨后調(diào)用任務(wù)涉及的所有模塊和插件债鸡,根據(jù)Inventory中定義的主機(jī)列表通過SSH將任務(wù)集以臨時(shí)文件或命令的形式傳輸?shù)竭h(yuǎn)程客戶端執(zhí)行并返回執(zhí)行結(jié)果,如果是臨時(shí)文件則執(zhí)行完畢后自動(dòng)刪除铛纬。

playbook語(yǔ)法

  • playbook配置文件使用YAML語(yǔ)法厌均,具有簡(jiǎn)潔明了、結(jié)構(gòu)清晰等特點(diǎn)告唆。
  • playbook配置文件類似于shell腳本棺弊,是一個(gè)YAML格式的文件晶密,用于保存針對(duì)特定需求的任務(wù)列表。
  • 上面介紹的ansible命令雖然可以完成各種任務(wù)镊屎,但是當(dāng)配置一些復(fù)雜任務(wù)時(shí)惹挟,逐條輸入就顯得效率非常低下。更有效的方案是在playbook配置文件中放置所有的任務(wù)代碼缝驳,利用ansible-playbook命令執(zhí)行該文件连锯,可以實(shí)現(xiàn)自動(dòng)化運(yùn)維。
  • YAML文件的擴(kuò)展名通常為.yaml或.yml用狱。
  • YAML語(yǔ)法與其他高級(jí)語(yǔ)言類似运怖,其結(jié)構(gòu)通過縮進(jìn)來展示,通過“-”來代表項(xiàng)夏伊;“:”用來分隔鍵和值摇展;整個(gè)文件以“---”開頭并以“…”結(jié)尾,如下所示:
---

- hosts: web                   <!--針對(duì)web組中的操作-->
  remote_user: root                    <!--遠(yuǎn)端執(zhí)行用戶身份為root-->
  tasks:                <!--任務(wù)列表-->
        - name: adduser                               <!--任務(wù)名稱-->
          user: name=user1 state=present <!--執(zhí)行user模塊溺忧,創(chuàng)建用戶-->
          tags:                <!--創(chuàng)建tag標(biāo)簽-->
          - aaa                 <!--tag標(biāo)簽為aaa-->
        - name: addgroup           <!--任務(wù)名稱-->
          group: name=root system=yes <!--執(zhí)行g(shù)roup模塊咏连,創(chuàng)建組-->
          tags:               <!--創(chuàng)建tag標(biāo)簽-->
          - bbb               <!--tag標(biāo)簽為bbb-->
- hosts: web2               <!--針對(duì)web2組中的操作-->
  remote_user: root        <!--遠(yuǎn)端執(zhí)行用戶身份為root-->
  tasks:                     <!--任務(wù)列表-->
        - name: copy file to web            <!--任務(wù)名稱-->
          copy: src=/etc/passwd dest=/home        <!--執(zhí)行copy模塊,復(fù)制文件-->
          tags:                        <!--創(chuàng)建tag標(biāo)簽-->
          - ccc                     <!--tag標(biāo)簽為ccc-->

...

下面是實(shí)踐:給web組主機(jī)安裝Java1.8環(huán)境

  • 思路就是先將Java壓縮包放到各個(gè)主機(jī)的,/tmp/ 文件夾下,再交給腳本,具體怎么批量去放,根據(jù)環(huán)境的不同擇優(yōu)使用,推薦ansible copy 模塊
  • 話不多說,先上playbook Script 新建文件installJDK.yaml
---

# 針對(duì)web組中的操作
- hosts: web 
  remote_user: root
  tasks: 
         - name: copy JDK to app dic
           shell: mkdir /usr/app
         - name: tar jdk
           shell: tar -zxvf /tmp/jdk-8u311-linux-x64.tar.gz -C /usr/app/
         - name: rename
           shell: mv /usr/app/jdk1.8.0_311 /usr/app/java
         - name: setting profile
           shell: echo "export JAVA_HOME=/usr/app/java" >> /etc/profile &&
                  echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile &&
                  echo "export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib" >> /etc/profile &&
                  echo "安裝完畢B成K畹巍!\r下面進(jìn)行測(cè)試" &&
                  source /etc/profile &&
                  echo "java版本為:" &&
                  java -version &&
                  echo "Java環(huán)境安裝完成"
...
  • 寫好腳本后,將腳本上傳至ansible所在機(jī)器,/etc/ansible/ 下
  • 先檢查是否有錯(cuò)誤
ansible-playbook --syntax-check /etc/ansible/installJDK.yaml
# 沒有報(bào)錯(cuò)就是沒有語(yǔ)法錯(cuò)誤
  • 測(cè)試腳本
ansible-playbook -C /etc/ansible/installJDK.yaml
  • 執(zhí)行腳本
ansible-playbook /etc/ansible/installJDK.yaml
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歌溉,一起剝皮案震驚了整個(gè)濱河市垄懂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痛垛,老刑警劉巖草慧,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異匙头,居然都是意外死亡漫谷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門蹂析,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抖剿,“玉大人,你說我怎么就攤上這事识窿≌独桑” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵喻频,是天一觀的道長(zhǎng)缩宜。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么锻煌? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任妓布,我火速辦了婚禮,結(jié)果婚禮上宋梧,老公的妹妹穿的比我還像新娘匣沼。我一直安慰自己,他們只是感情好捂龄,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布释涛。 她就那樣靜靜地躺著,像睡著了一般倦沧。 火紅的嫁衣襯著肌膚如雪唇撬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天展融,我揣著相機(jī)與錄音窖认,去河邊找鬼。 笑死告希,一個(gè)胖子當(dāng)著我的面吹牛扑浸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播燕偶,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼喝噪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了杭跪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤驰吓,失蹤者是張志新(化名)和其女友劉穎涧尿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體檬贰,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姑廉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翁涤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桥言。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖葵礼,靈堂內(nèi)的尸體忽然破棺而出号阿,到底是詐尸還是另有隱情,我是刑警寧澤鸳粉,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布扔涧,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏枯夜。R本人自食惡果不足惜弯汰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望湖雹。 院中可真熱鬧咏闪,春花似錦、人聲如沸摔吏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舔腾。三九已至溪胶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稳诚,已是汗流浹背哗脖。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扳还,地道東北人才避。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像氨距,于是被迫代替她去往敵國(guó)和親桑逝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容