目錄
1.ansible.builtin中用于創建、更新或刪除多行文本塊的模塊是什么
2.copy模塊的作用
3.fetch模塊的作用
4.file模塊的作用
5.lineinfile模塊的作用
6.stat模塊的作用
7.要確保受管主機上存在文件,類似touch命令功能,還能設置權限等的模塊及操作是怎樣的
8.修改文件SELinux上下文屬性,類似chcon命令功能的操作是怎樣的
9.Ansible中用于部署使用Jinja2模板定義的文件到受管主機的模塊是什么
10.為避免其他管理員手動修改Ansible管理的文件,在模板頂部添加注釋的方式是怎樣的
11.Jinja2模板中使用循環(for語句)的作用是什么
12.Jinja2模板中使用條件句(if語句)的作用是怎樣的
13.Jinja2中用于改變模板表達式輸出格式的篩選條件有哪些,舉例說明
1.ansible.builtin中用于創建、更新或刪除多行文本塊的模塊是什么
答案:blockinfile模塊,可插入、更新或刪除由可自定義標記線包圍的多行文本塊。
2.copy模塊的作用
答案:可實現文件復制及屬性設置,能將文件從本地或遠程計算機復制到受管主機上,還可設置文件屬性(包括SELinux上下文)
3.fetch模塊的作用
答案:與copy模塊作用相反,用于從遠程計算機獲取文件到控制節點,用于從遠程主機獲取文件到控制節點并按主機名組織存儲。
4.file模塊的作用
答案:可設置權限、所有權、SELinux上下文以及常規文件、符號鏈接、硬鏈接和目錄的時間戳等屬性,還能創建或刪除常規文件等,具備多種文件及屬性管理功能。
5.lineinfile模塊的作用
答案:確保特定行位于某個文件中,或使用反向引用正則表達式替換現有行,主要用于修改文件中的某一行。
6.stat模塊的作用
答案:檢索文件狀態信息,類似于Linuxstat命令,可獲取文件狀態相關信息。
7.要確保受管主機上存在文件,類似touch命令功能,還能設置權限等的模塊及操作是怎樣的
答案:使用ansible.builtin.file模塊,通過設置path(文件路徑)、owner(所有者)、group(所屬組)、mode(權限)、state:touch來實現。
8.修改文件SELinux上下文屬性,類似chcon命令功能的操作是怎樣的
答案:使用ansible.builtin.file模塊,指定path(文件路徑)和setype(SELinux類型),如將samba_file的SELinux上下文設為samba_share_t類型的操作。
9.Ansible中用于部署使用Jinja2模板定義的文件到受管主機的模塊是什么
答案:ansible.builtin.template模塊,可將控制節點templates目錄中的Jinja2模板文件(通常帶.j2擴展名)部署到受管主機指定路徑,還能設置部署后文件的所有者、組、權限和SELinux上下文等。
10.為避免其他管理員手動修改Ansible管理的文件,在模板頂部添加注釋的方式是怎樣的
答案:可使用ansible_managed指令,在ansible.cfg文件中設置ansible_managed的值(如ansible_managed=Ansiblemanaged),然后在Jinja2模板內用{{ansible_managed}}包含該注釋內容,提示不應手動編輯文件。
11.Jinja2模板中使用循環(for語句)的作用是什么
答案:比如遍歷users變量(值為列表),用{%foruserinusers%}{{user}}{%endfor%}可將列表中每個用戶值逐行輸出;也可結合條件(如排除root用戶)進行循環,還能遍歷主機組(如groups['myhosts'])輸出主機名等,用于動態生成文件內容(如/etc/hosts)。
12.Jinja2模板中使用條件句(if語句)的作用是怎樣的
答案:如{%iffinished%}{{result}}{%endif%},當finished變量值為True時,才將result變量值放入已部署文件中,實現條件性地在部署文件里放置內容。
13.Jinja2中用于改變模板表達式輸出格式的篩選條件有哪些,舉例說明
答案:有to_json(將表達式輸出格式化為JSON)、to_yaml(格式化為YAML)、to_nice_json(格式化易讀的JSON)、to_nice_yaml(格式化易讀的YAML)、from_json(要求輸入為JSON格式字符串并轉換)、from_yaml(要求輸入為YAML格式字符串并轉換)等,如{{output|to_json}}可將output內容轉為JSON格式輸出。