Ansible 是近幾年十分流行的DevOps工具架構什麼的我就不在這裡贅述了,網上一找一堆這裡寫點我在ansible常用功能1、命令串 2、playbook書寫格式 註:破編輯器沒有yaml yaml 無法識別tab產生的空格,慣用vim寫python的童鞋 必定深受茶毒,我就是個例子 playb ...
Ansible 是近幾年十分流行的DevOps工具
架構什麼的我就不在這裡贅述了,網上一找一堆
這裡寫點我在ansible常用功能
1、命令串
#copy文件 #ansible host文件中的主機組 -m 模塊名 -a "src=ansible主控絕對路徑 dest=被控絕對路徑" ansible study -m copy -a "src=/study-a/123.txt dest=/study-b/123.txt" #shell命令 #ansible host文件中的主機組 -m 模塊名 -a shell命令 ansible study -m shell -a "ls -al /study" #command 執行非系統預設命令,如:jps ansible study -m command -a "jps" #script執行腳本 #ansible host文件中的主機組 -m 模塊名 -a ansible主控機腳本所在絕對路徑 ansible study -m script -a "/study/superpython.py"
2、playbook書寫格式
註:破編輯器沒有yaml
yaml 無法識別tab產生的空格,慣用vim寫python的童鞋 必定深受茶毒,我就是個例子
1 --- #可有可無 2 - hosts: study #hosts: 是固定格式。study是hosts配置文件中定義的主機組 3 tasks: #任務,有模板定義的操作列表 4 - name: Copy shellscript.sh #- name:必不可少,否則檢測不通過。這行就是一個描述作用 5 copy: #執行copy 操作。如果你需要其他操作,ansible-doc -l 裡面是可以寫入playbook的,其他的不行 6 #一下內容為參數 7 src: /abc/123.sh #文件原路徑,本機路徑 8 dest: /cde/123.sh #文件目的路徑,拷貝到目標主機 9 mode: 0644
playbook 異常處理
在執行一些升級腳本時往往無法得到正常的結果,但是我們已經完成了所有的任務。 如果ansible遇見錯誤就會中斷tasks,那麼我們就需要在tasks中添加忽略錯誤1 --- 2 - hosts: study 3 tasks: 4 - name: execute glibc-update.sh 5 script: /study/glibc-update.sh 6 ignore_errors: yes #這裡對異常做了處理,遇見error也能繼續執行 7 - name: test 8 shell: echo "Hello Python"
1 #playbook執行 2 #ansible-playbook playbook文件 -f 併發進程數,註意這裡併發的是進程數,不是非同步,設置的時候請考量自己運維主控機計算資源 3 ansible-playbook study.yaml -f 2