2015-03-21 18 views
9

Używam ansible do zarządzania małym serwerem pocztowym przy użyciu ubuntu. Chciałem użyć ansible, aby utworzyć bazę danych, którą mogę wykonać, a także utworzyć użytkowników dla bazy danych, które również mogę wykonać. Ale nie jestem pewien, jak tworzyć tabele przy użyciu ansible. Próbuję utworzyć następujące trzy tabele MySQL za pomocą ansibl:Tworzenie tabel MySQL z obsługą

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; 

Mam szukał i szukał a nawet pytam w #ansible i oświadczyłem, że mogę użyć modułu mysql_db do wykonania powyższego zadania, ale nie mogę znaleźć żadnego exa mples, które dadzą mi pewien rodzaj wskazówek, jak osiągnąć powyższe w ansibla.

Każda pomoc będzie WAM GORĄCO doceniona!

Odpowiedz

8

Za pomocą mysql_db module można zaimportować plik MySQL. Tak więc można po prostu skopiować wszystkie 3 CREATE w jeden pojedynczo pliku tekstowego i zaimportować go tak:

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

Ten przykład pochodzi z powyższym połączonej stronie docs, istnieją więcej zadań w tym jeden, który pokazuje w jaki sposób skopiować plik do hosta wcześniej.

+0

To działało jak stwierdzono! Dziękuję bardzo! – mvelez83