ansible系列3-pyYAML
規(guī)則一:縮進(jìn)
yaml使用一個固定的縮進(jìn)風(fēng)格表示數(shù)據(jù)層結(jié)構(gòu)關(guān)系,Saltstack需要每個縮進(jìn)級別由兩個空格組成。一定不能使用tab鍵
注意:編寫yaml文件,就忘記鍵盤有tab
規(guī)則二:冒號
CMD="echo"
yaml:
mykey:
每個冒號后面一定要有一個空格(以冒號結(jié)尾不需要空格,表示文件路徑的模版可以不需要空格)
規(guī)則三:短橫線
想要表示列表項(xiàng),使用一個短橫杠加一個空格。多個項(xiàng)使用同樣的縮進(jìn)級別作為同一個列表的一部分
例子:
### 劇本的開頭,可以不寫 - hosts: all <- 處理所有服務(wù)器,找到所有服務(wù)器; -(空格)hosts:(空格)all tasks: <- 劇本所要干的事情; (空格)(空格)task: - command: echo hello oldboy linux. (空格)(空格)空格)(空格)-(空格)模塊名稱:(空格)模塊中對應(yīng)的功能
ansible all -m command -a "echo hello oldboy linux"
編寫后檢查方法:
01:ansible-playbook--syntax-check01.yml
--- 進(jìn)行劇本配置信息語法檢查
02:ansible-playbook-C01.yml
--- 模擬劇本執(zhí)行(彩排)
說明:ansible執(zhí)行時,加1上-vvvv顯示ansible詳細(xì)執(zhí)行過程,也可以定位異常原因!
劇本編寫內(nèi)容擴(kuò)展:劇本任務(wù)編寫多個任務(wù)
- hosts: all
tasks:
- name: restart-network
cron: name='restart network' minute=00 hour=00 job='/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'
- name: sync time
cron: name='sync time' minute=*/5 job="/usr/sbin/ntpdate pool.ntp.com >/dev/null 2>&1"
劇本編寫內(nèi)容擴(kuò)展:劇本任務(wù)編寫多個主機(jī)
- hosts: 172.16.1.7
tasks:
- name: restart-network
cron: name='restart network' minute=00 hour=00 job='/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'
- name: sync time
cron: name='sync time' minute=*/5 job="/usr/sbin/ntpdate pool.ntp.com >/dev/null 2>&1"
- hosts: 172.16.1.31
tasks:
- name: show ip addr to file
shell: echo $(hostname -i) >> /tmp/ip.txt
例子:
#cattest1.sh
#!/bin/bash
if[-z$1]||[-z$2];then
echo"Wrong,Pleaseinputtwoargs"
echo"Usage`basename$0`argumentsarguments"
exit6
fi
mkdir-pv/usr/local/src/$1/$2
#catcreatedir.yml
---
-hosts:"{{host}}"
user:"{{user}}"
gather_facts:True
tasks:
-name:CreateDirinclientserver
script:/etc/ansible/test1.shdatalog
執(zhí)行:
#ansible-playbookcreatedir.yml-e"host=webuser=root" # 給{{ host }} {{ user }} 傳值
總結(jié)
以上是生活随笔為你收集整理的ansible系列3-pyYAML的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红魔7S Pro氘锋透明版上手:《原神》
- 下一篇: 免疫信息学