2015-03-21 8 views
9

Sto usando ansibile per gestire un piccolo server di posta usando ubuntu. Volevo usare ansible per creare un database che posso fare e anche creare utenti per i database che posso fare anche io. Ma non sono sicuro di come creare tabelle usando ansible. Sto cercando di creare i seguenti tre tabelle di MySQL utilizzando ansible:Creazione di tabelle MySQL con Ansible

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; 

ho cercato e ricercato e anche chiedere in #ansible e ho dichiarato che posso usare il modulo mysql_db per completare l'operazione sopra ma non riesco a trovare alcun exa mples che mi daranno un qualche tipo di direzione su come ottenere quanto sopra in ansible.

Qualsiasi e qualsiasi aiuto sarebbe GRANDE apprezzato!

risposta

8

Con mysql_db module è possibile importare un file MySQL. Così semplicemente è possibile copiare tutti e 3 creare istruzioni in un unico singolarmente file di testo e importarlo in questo modo:

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

Questo esempio è tratto dalla pagina di documentazione di cui sopra collegata, ci sono più attività tra cui uno che mostra come copiare il file per l'host prima.

+0

Questo ha funzionato come dichiarato! Grazie mille !! – mvelez83