ansible系列3-pyYAML
規則一:縮進
yaml使用一個固定的縮進風格表示數據層結構關系,Saltstack需要每個縮進級別由兩個空格組成。一定不能使用tab鍵
注意:編寫yaml文件,就忘記鍵盤有tab
規則二:冒號
CMD="echo"
yaml:
mykey:
每個冒號后面一定要有一個空格(以冒號結尾不需要空格,表示文件路徑的模版可以不需要空格)
規則三:短橫線
想要表示列表項,使用一個短橫杠加一個空格。多個項使用同樣的縮進級別作為同一個列表的一部分
例子:
### 劇本的開頭,可以不寫 - hosts: all <- 處理所有服務器,找到所有服務器; -(空格)hosts:(空格)all tasks: <- 劇本所要干的事情; (空格)(空格)task: - command: echo hello oldboy linux. (空格)(空格)空格)(空格)-(空格)模塊名稱:(空格)模塊中對應的功能
ansible all -m command -a "echo hello oldboy linux"
編寫后檢查方法:
01:ansible-playbook--syntax-check01.yml
--- 進行劇本配置信息語法檢查
02:ansible-playbook-C01.yml
--- 模擬劇本執行(彩排)
說明:ansible執行時,加1上-vvvv顯示ansible詳細執行過程,也可以定位異常原因!
劇本編寫內容擴展:劇本任務編寫多個任務
- 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"
劇本編寫內容擴展:劇本任務編寫多個主機
- 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
執行:
#ansible-playbookcreatedir.yml-e"host=webuser=root" # 給{{ host }} {{ user }} 傳值
總結
以上是生活随笔為你收集整理的ansible系列3-pyYAML的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红魔7S Pro氘锋透明版上手:《原神》
- 下一篇: 免疫信息学