📅  最后修改于: 2023-12-03 14:59:19.531000             🧑  作者: Mango
在使用 Ansible 进行自动化部署时,有时需要删除指定的目录。Ansible 提供了一个方便的模块 file
来进行文件和目录的操作,包括删除目录。
可以使用 file
模块的 state=absent
参数来删除目录,示例如下:
- name: 删除目录
file:
path: /path/to/directory
state: absent
在上面的示例中,将删除路径为 /path/to/directory
的目录。
如果要删除的目录不存在,可以使用 force=True
参数来忽略删除失败的错误。示例如下:
- name: 删除目录(不存在)
file:
path: /path/to/nonexistent/directory
state: absent
force: yes
在上面的示例中,如果 /path/to/nonexistent/directory
目录不存在,将忽略删除失败的错误。
如果要删除多台主机上的目录,可以在 Inventory
文件中定义变量,示例如下:
[web_servers]
server1.example.com
server2.example.com
server3.example.com
[web_servers:vars]
ansible_user=deploy
website_root=/var/www/html
在上面的示例中,定义了 website_root
变量,可以在 playbook
中进行使用:
- name: 删除 web 服务器上的目录
hosts: web_servers
become: yes
tasks:
- name: 删除目录
file:
path: "{{ website_root }}/mywebsite"
state: absent
force: yes
在上面的示例中,将在 web_servers
组中的主机上删除 /var/www/html/mywebsite
目录。
Ansible 提供了方便的 file
模块来进行文件和目录的操作,包括删除目录。可以使用 state=absent
参数来删除目录,如果要忽略不存在的目录可以使用 force=True
参数。定义 Inventory
中的变量可以方便地在 playbook
中进行使用。