常用檔案模組
模組作用
blockinfile
將文字塊新增到現有檔案
copy
將檔案複製到受管主機
fetch
從受管主機拷貝檔案到控制節點
file
設定檔案屬性
lineinfile
確保特定行位於某個檔案
stat
檢索檔案狀態資訊
synchronize
rsync 命令的乙個打包程式
file
示例:①:在受管主機建立檔案
---
- name: test
hosts: rhel8_no1.test.com
tasks:
- name: touch a file
file:
path: /mnt/file ##路徑
owner: student
group: student
mode: 0640 #許可權
state: touch
- name: set selinux
file:
path: /mnt/file
setype: samba_share_t #安全上下文
- name: always set selinux
sefcontext:
target : /mnt/file ##永久修改檔案的安全上下文
②:刪除檔案
- name: delete file
file:
dest: /mnt/file
state: absent ##刪除
③:檢測檔案的 md5 校驗和
- name: verify the status
stat:
path: /mnt/file
checksum_algorithm: md5
register: result
- debug:
msg: "the checksum is }"
④:同步控制節點和受管主機之間的檔案
- name: synchronize file
synchronize:
src: file
dest: /mnt/file
作用:使用 jinja2 模板動態構建檔案,可以更方便的管理檔案
寫法:
構建 jinja2 模板:
jinja2 模板由多個元素組成:資料、變數、表示式
模板中使用的變數可以在 playbook 的 vars 中指定 ,模板中所有的值都使用變數方式,將來會被受管主機對應的值替代
部署 jinja2 模板:
tasks:
- name: template
template:
src: /root/j2-template.j2
dest: /root/dest-config-file.txt
jinjia2 的控制結構jinja2 的迴圈和條件只能在模板中使用,不能在 playbook 中使用
使用迴圈:
#寫法一:
} #user 變數將遍歷 users
#寫法二:
#列出 myhosts 組中所有主機
}
使用條件句 :
#只有此條件為真,才會將 result 變數的值放入檔案
}
變數過濾器:
} #以 json 格式輸出
} #以yml格式輸出
} #對 json 格式字串進行解析
} #對 yml 格式字串進行解析
①:vim motd.j2
構建jinjia2模板
this is the system }
this is a } version } system.
system owner is }.
②:vim motd.yml
編寫playbook, 部署jinjia2模板
---
- name: configure soe
hosts: rhel8_no1.test.com
remote_user: student
become: true
vars:
- system_owner: [email protected]
tasks:
- name: configure /etc/motd
template:
src: motd.j2 ##模板檔案
dest: /etc/motd ##受管主機上的目標檔案
owner: root
group: root
mode: 0644
③:執行playbook,並驗證受管主機上的檔案是否得到修改
在windows 上執行ansible
cygwin是乙個在windows平台上執行的類unix模擬環境。利用cygwin 可以在window上執行ansible。安裝cygwin 可參考 安裝執行ansible 需要的包如圖 修改 ansible.cfg 的兩處配置 host key checking 和 ssh args host k...
管理伺服器和受管伺服器
1.首先根據主機的相同與不同,上面的ip位址一樣就可以啟動管理伺服器好之後啟動受管伺服器連線即使主機不同,但是ip相同會自動間隔10秒去連線。有個檔案代表設定10秒自動連線ip位址 2.如果不同主機不同ip,如果是在windows,先啟動管理伺服器再啟動受管伺服器 在windows上建立乙個base...
在GitHub上管理專案
本地目錄下,在命令列裡新建乙個 倉庫 repository 裡面只有乙個readme.md 命令如下 touch readme.md git init 初始化repository git add readme.md 將readme.md加入到快取區 可以用git add a將所有改動提交到快取 注意...