ansible的劇本playbook
阿新 • • 發佈:2022-05-25
ansible的劇本playbook,目的是寫ansible指令碼用的,遵循的是yaml規範,一般用來寫一些配置檔案
playbook的建議:建議只有一個hosts,一個tasks
yaml有兩種資料結構:
字典 K:V
列表 [ ]
yaml寫列表到時候一般用- 比如: - libai - dufu - baijuyi - wanganshi 上面的-寫出來的東西就是一個列表[libai,dufu,baijuyi,wanganshi]
yaml檔案示例
vi job.yaml #開啟並編寫job.yaml檔案 job.yaml的內容如下: - hosts: web #-表示建立一個列表,hosts:web表示建立一個字典,並指明對應的主機 remote_user: root #表示使用playbook的使用者 tasks: #tasks裡面都是建立的任務 - name: createuser #name表示的是建立任務的註釋 user: name=libai home=/opt/libai uid=4000 #user是ansible的user模組, :後面的是user -a的“”裡面寫的內容 -name:copy_content copy:src='源目標地址' desc = “目標地址” #這裡的copy也是ansible的copy模組
playbook的使用格式
playbook使用的格式: ansible-playbook [options] playbook.yml [playbook2 ...] ansible-playbook 引數 yaml檔案 options的引數 -C, --check #白跑,執行但是不會有結果 --list-hosts #列出符合的主機 -f FORKS, --forks=FORKS #做併發,預設為5 --syntax-check #檢查語法 -k, --ask-pass #輸入密碼
playbook的傳參(五種方式)
job.yml檔案的格式: - hosts: web tasks: - name: create{{user}} user: name={{user}} 傳參的第一種方式: 使用的是-e引數 ansible-playbook -e user=libai job.yml 傳參的第二種方式 使用的是更改ansible的hosts檔案,在分組的IP地址後面新增引數 [web] 192.168.226.[101:102] user=libai 192.168.226.104 user=dufu 執行是:ansible-playbook job.yml 傳參的第三張方式 修改ansible的hosts檔案,裡面新增如下 [web:vars] #[組名:vars] user=libai 執行是:ansible-playbook job.yml 傳參的第四種方式 通過編寫job.yml檔案來傳參 - hosts: web vars: - user: libai tasks: - name: create{{user}} user: name={{user}} 執行是:ansible-playbook job.yml 傳參的第五種方式 通過編寫job.yml來傳參,需要安裝bc,yum install bc -y - hosts: web tasks: - name: yum yum: name=bc - name: sum shell: echo 11+22|bc #實現11+22 register: user #這裡是註冊 - name: echo shell: echo {{user.stdout}} > /tmp/echo.txt - name: create{{user.stdout}} user: name=libai{{user.stdout}} 注:傳參的優先順序 -e > playbook > hosts