ansible劇本變量恐仑,條件語句,循環(huán)語句

ansible 中變量的使用

定義一個(gè)ip地址變量判帮,創(chuàng)建目錄的時(shí)候引用

[root@m01 ~]# cat 01-var.yaml
---
   - hosts: all
     vars:
       ip: 172.16.1.31
     tasks:
     - name: mkdir
       file:
         path: /fanzhi/{{ip}}
         state: directory

在nfs01 backup 創(chuàng)建/backup/lidao的目錄 把 /etc/目錄打包壓縮到/backup/lidao目錄下面 etc.tar.gz

編寫劇本

[root@m01 ~]# vim 02.var.yaml
---
   - hosts: all
     vars:
       dir: /backup/lidao
     tasks:
     - name: mkdir
       file:
         path: "{{dir}}"
     - name: tar
       archive:
         path: /etc
         dest: "{{dir}}/etc.tar.gz"

檢查


[root@m01 ~]# ansible all -a 'tree /backup'
172.16.1.31 | CHANGED | rc=0 >>
/backup
/backup
├── lidao
│       └── etc.tar.gz
└── md5.log

172.16.1.41 | CHANGED | rc=0 >>
/backup
├── lidao
│       └── etc.tar.gz
└── md5.log

ansible-palybook中使用變量是在{{}}中使用的局嘁,需要注意的是如果在開頭某個(gè)模塊的開頭使用變量需要用引號(hào)引起來

在nfs01 backup 創(chuàng)建/backup/lidao/時(shí)間 的目錄 把 /etc/目錄打包壓縮到/backup/lidao/時(shí)間 目錄下面 etc.tar.gz

打包壓縮 /etc/到時(shí)間命名的目錄中。
創(chuàng)建變量存放時(shí)間(寫死為2019-05-31)
創(chuàng)建變量存放目錄名

編寫劇本

[root@m01 ~]# vim 03.var.yaml
---
   - hosts: 172.16.1.31 172.16.1.41
     vars:
       dir: /backup/lidao
       time: "2019-05-30"
     tasks:
       - name: mkdir
         file:
           path: "{{dir}}/{{time}}"
           state: "directory"
       - name: tar etc
         archive:
           path: /etc
           dest: "{{dir}}/{{time}}/etc.tar.gz"

檢查

[root@m01 ~]# ansible all -a 'tree /backup'
172.16.1.41 | CHANGED | rc=0 >>
/backup
└── lidao
    └── 2019-05-30
        └── etc.tar.gz

2 directories, 1 file

172.16.1.31 | CHANGED | rc=0 >>
/backup
└── lidao
    └── 2019-05-30
        └── etc.tar.gz

把/etc/打包備份到/backup/ip地址命名目錄/etc-時(shí)間.tar.gz

ip是每臺(tái)機(jī)器的內(nèi)網(wǎng)ip
時(shí)間是當(dāng)天的日期:年-月-日

預(yù)備知識(shí):

將register結(jié)果定向到文件

[root@m01 /etc/ansible]# cat 03-var-reg.yml 
---
  - hosts: all
    tasks:
      - name: ip
        shell:  hostname -I|awk '{print $NF}'
        register: ipaddr
      - name: print ip
        shell: echo {{ipaddr}}>/tmp/ip.txt

register是用來注冊(cè)變量的晦墙,他在劇本中可以吧上一條命令的結(jié)果注冊(cè)為一個(gè)變量悦昵。

內(nèi)容如下

[root@m01 /etc/ansible]#    
ipaddr變量的內(nèi)容
[root@nfs01 ~]# cat /tmp/ip.txt 
{stderr_lines: []
 uchanged: True
 uend: u2019-05-31 11:24:45.080356
 failed: False
 ustdout: u172.16.1.31,
 ucmd: uhostname -I|awk '{print }', 
 urc: 0, 
 ustart: u2019-05-31 11:24:45.073817, 
 ustderr: u, 
 udelta: u0:00:00.006539, 
 stdout_lines: [u172.16.1.31]
 }

這么多內(nèi)容我們就需要,stdout的值晌畅。他的含義是標(biāo)準(zhǔn)輸出 但指。就是我們想要的前面命令的結(jié)果。就像我們?cè)诿钚兄惺褂梅匆?hào)一樣。

注冊(cè)變量進(jìn)行調(diào)試

[root@m01 ~]# vim 04.var.yaml
---
   - hosts: all
     tasks:
       - name: ip
         shell: hostname -I|awk '{print $NF}'
         register: ipaddr
       - name: time
         shell: date +%F
         register: time
       - name: debug
         debug: msg={{ipaddr.stdout}}
       - name: debug2
         debug: msg={{time.stdout}}

檢查

[root@m01 ~]# ansible-playbook 04.var.yaml
省略若干--
TASK [debug] *******************************************************************
ok: [172.16.1.41] => {
    "msg": "172.16.1.41"
}
ok: [172.16.1.31] => {
    "msg": "172.16.1.31"
}

TASK [debug2] ******************************************************************
ok: [172.16.1.41] => {
    "msg": "2019-05-31"
}
ok: [172.16.1.31] => {
    "msg": "2019-05-31"

debug 模塊是用來調(diào)試的棋凳,他可以讓變量的內(nèi)容顯示到屏幕拦坠,一般定義變量是可以用它先進(jìn)行測(cè)試

編寫劇本

[root@m01 ~]# vim 04.var.yaml
---
   - hosts: all
     tasks:
       - name: ip
         shell: hostname -I|awk '{print $NF}'
         register: ipaddr
       - name: time
         shell: date +%F
         register: time
       - name: mkdir
         file:
           path: /backup/{{ipaddr.stdout}}
           state: directory
       - name: tar
         archive:
           path: /etc
           dest: /backup/{{ipaddr.stdout}}/etc-{{time.stdout}}.tar.gz
~                                                                           

檢查

[root@m01 ~]# ansible all -a 'tree /backup'
172.16.1.41 | CHANGED | rc=0 >>
/backup
├── 172.16.1.41
│   └── etc-2019-05-31.tar.gz
└── lidao
    └── 2019-05-30
        └── etc.tar.gz

3 directories, 2 files

172.16.1.31 | CHANGED | rc=0 >>
/backup
├── 172.16.1.31
│   └── etc-2019-05-31.tar.gz
└── lidao
    └── 2019-05-30
        └── etc.tar.gz

循環(huán)的使用

---
- hosts: all
  remote_user: root
  tasks:
    - name: Installed Pkg
      yum: name={{ item }} state=present
      with_items:
        - wget
        - tree
        - lrzsz

判斷的使用

[root@m01 ~]# vim 05.var.yaml
---
   - hosts: all
     tasks:
       - name: yum
         yum:
          name: tree
          state: installed
         when: (ansible_hostname == 'nfs01')

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市剩岳,隨后出現(xiàn)的幾起案子贞滨,更是在濱河造成了極大的恐慌,老刑警劉巖拍棕,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晓铆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡绰播,警方通過查閱死者的電腦和手機(jī)骄噪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蠢箩,“玉大人腰池,你說我怎么就攤上這事∶γⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵讳侨,是天一觀的道長呵萨。 經(jīng)常有香客問我,道長跨跨,這世上最難降的妖魔是什么潮峦? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮勇婴,結(jié)果婚禮上忱嘹,老公的妹妹穿的比我還像新娘。我一直安慰自己耕渴,他們只是感情好拘悦,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著橱脸,像睡著了一般础米。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上添诉,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天屁桑,我揣著相機(jī)與錄音,去河邊找鬼栏赴。 笑死蘑斧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播竖瘾,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼沟突,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了准浴?” 一聲冷哼從身側(cè)響起事扭,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乐横,沒想到半個(gè)月后求橄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葡公,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年罐农,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片催什。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涵亏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒲凶,到底是詐尸還是另有隱情气筋,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布旋圆,位于F島的核電站宠默,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏灵巧。R本人自食惡果不足惜搀矫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刻肄。 院中可真熱鬧瓤球,春花似錦、人聲如沸敏弃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽麦到。三九已至虹茶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間隅要,已是汗流浹背蝴罪。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留步清,地道東北人要门。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓虏肾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親欢搜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子封豪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350