使用 Ansible 创建 MySQL 个表

Create MySQL Tables with Ansible

我正在使用 ansible 来管理一个使用 ubuntu 的小型邮件服务器。我想使用 ansible 创建一个我可以做的数据库,并为我也可以做的数据库创建用户。但我不确定如何使用 ansible 创建表。我正在尝试使用 ansible 创建以下三个 MySQL 表:

1)

CREATE TABLE `virtual_domains` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2)

CREATE TABLE `virtual_users` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `password` varchar(106) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3)

CREATE TABLE `virtual_aliases` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `source` varchar(100) NOT NULL,
  `destination` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我搜索了又搜索,甚至在#ansible 中询问,并声明我可以使用 mysql_db 模块来完成上述任务,但我找不到任何可以给我某种类型的示例关于如何在 ansible 中实现上述目标的方向。

我们将不胜感激任何帮助!

使用 mysql_db module 您可以导入 MySQL 文件。所以你可以简单地将所有 3 个创建语句复制到一个单独的文本文件中,然后像这样导入它:

- mysql_db: name=my_db state=import target=/tmp/dump.sql.bz2

该示例取自上面链接的文档页面,还有更多任务,包括之前向您展示如何将文件复制到主机的任务。


  • 主持人:mysql 任务:
    • 名称:在mysql_databases中创建一个table 命令:mysql -u root -p[root1234] testdb --skip-column-names --execute "create table test_table (Name varchar(255), EmpID INT NOT NULL) “