mysql_db - 删除所有数据库

问题描述 投票:0回答:1

我想通过将'name'设置为all,并在'when'条件下删除多个数据库。

name=all 只有当状态为dump或import时才会提供。

有什么办法可以删除所有(mysql)符合特定名称的数据库(例如所有名称以 "temp_20200422_"开头的数据库)?

ansible mysql-python ansible-2.x
1个回答
0
投票

有选项可以使用 mysql_info 模块中获取所有数据库的列表,然后在 mysql_db

 - name: Get list of databases
      mysql_info:
        login_user: "{{ mysql_database.user }}"
        login_password: "{{ mysql_database.password }}"
        login_host: "{{ mysql_database.address }}"
        filter:
        - databases
      register: databases

- name: "Delete temp databases older than 1 day"
  mysql_db:
    name: "{{ db }}"
    state: absent
    login_user: "{{ mysql_database.user }}"
    login_password: "{{ mysql_database.password }}"
    login_host: "{{ mysql_database.address }}"
  loop_control:
    loop_var: db
  loop: "{{ databases.databases.keys() }}"
  when: "temp__" in db
© www.soinside.com 2019 - 2024. All rights reserved.