為什麼要學:
經過初步階段 ansible 學習已大概知道基本原理及架構,接下便是開始思考如何靈活運用ansible了,想學ansible最主要是她的範例多到數不盡.只要您想學有什麼不可以
學習過程:
大家在學習過程中一定會覺的困難,主要是因為她有她獨特語法,需要先了解ansible為何要如此做及其模組化架構後很多問題便可迎刃而解,我用此方式去學習感覺很順一個個學下來很快樂,如果都學會學精了您便可在任何一台電腦去部署各群組(科室)的電腦了
第一個實例:copy 模組
重點說明:
1在控制電腦目錄建立一個files目錄及一個test.txt檔案
2以下變數才可以用sudo連線
vars:
ansible_become: yes
ansible_become_method: sudo
ansible_become_pass: xxxx
3設定 become: yes 允許sudo操作
4因files目錄在目的電腦,尚未建立目錄,需要以下才會自動建立目錄
- name: Create a directory if it does not exist
file:
path: /etc/test
state: directory
5目錄產生後copy檔案
- name: copy files from local to remote
copy:
src: files/test.txt
dest: /etc/test/test.txt
6完整程式碼如下:
- hosts: web5
name: play-test
gather_facts: no
become: yes
vars:
ansible_become: yes
ansible_become_method: sudo
ansible_become_pass: xxxx
tasks:
- name: Create a directory if it does not exist
file:
path: /etc/test
state: directory
- name: copy files from local to remote
copy:
src: files/test.txt
dest: /etc/test/test.txt
7如果一切順利檔案便會copy到所有目的電腦如下:
joulong@joulong1:~/playbook/basic/group-host-vars$ ansible-playbook -i inventory/hosts main.yml
PLAY [Hello World]
TASK [Create a directory if it does not exist] ***************************************************************************************************************************************************************
ok: [joulong3]
ok: [joulong2]
TASK [copy files from local to remote] ***********************************************************************************************************************************************************************
ok: [joulong3]
ok: [joulong2]