bbatsche.MySQL
Ansible MySQL Rolle
Diese Rolle installiert und konfiguriert MySQL, MariaDB oder Percona Server und/oder erstellt Datenbanken und Benutzer für diese Server.
Bitte beachten Sie, dass immer nur ein Server zu einem bestimmten Zeitpunkt installiert werden kann, und diese Rolle unterstützt keinen Wechsel zwischen verschiedenen Servertypen.
Rollenvariablen
db_admin
— Benutzername des Administrators, der erstellt werden soll. Standard ist "vagrant"db_pass
— Passwort für den zu erstellenden Administrationsbenutzer. Standard ist "vagrant"env_name
— Ob dieser Server für "Entwicklung", "Produktion" usw. verwendet wird. Standard ist "dev"install_mysql
— MySQL Server installieren. Standard ist "nein"install_mariadb
— MariaDB Server installieren. Standard ist "nein"install_percona
— Percona Server installieren. Standard ist "nein"new_db_name
— Name der zu erstellenden Datenbank. Standard ist nicht definiert (übersprungen)new_db_user
— Benutzername des neuen zu erstellenden Benutzers. Standard ist nicht definiert (übersprungen)new_db_pass
— Passwort des neuen zu erstellenden Benutzers. Standard ist nicht definiert (übersprungen)new_db_priv
— Berechtigungen für den neuen Benutzer. Standard ist volle Kontrolle über den Server oder die Datenbank (sofern definiert)remove_root_user
— Root-Benutzer während der Installation entfernen. Standard ist, ihn zu entfernen.mysql_deb
— URL des MySQL-Repositorys, das zu APT hinzugefügt werden soll. Standard ist "https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb"mariadb_apt_key.trusty
— APT-Schlüssel für die Installation von MariaDB auf Trusty Tahr. Standard ist "0xcbcb082a1bb943db"mariadb_apt_key.xenial
— APT-Schlüssel für die Installation von MariaDB auf Xenial Xerus. Standard ist "0xF1656F24C74CD1D8"mariadb_version
— Version von MariaDB, die installiert werden soll. Standard ist "10.2"mariadb_apt_mirror
— Mirror zum Herunterladen von MariaDB. Standard ist "http://nyc2.mirrors.digitalocean.com"percona_deb
— URL des Percona Server Repositorys, das zu APT hinzugefügt werden soll. Standard ist "https://repo.percona.com/apt/percona-release_0.1-4.{{ ansible_distribution_release }}_all.deb
"percona_version
— Version des zu installierenden Percona Servers. Standard ist "5.7"mysql_socket
— Pfad zum MySQL-Socket. Standard ist "/var/run/mysqld/mysqld.sock"mysql_enable_network
— Ob externe Netzwerkverbindungen akzeptiert werden sollen oder nicht. Standard ist "nein"mysql_sql_mode
— SQL-Modus, der verwendet werden soll. Standard ist "ANSI,TRADITIONAL"mysql_max_connections
— Maximale Anzahl erlaubter Verbindungen. Standard ist "300"mysql_wait_timeout
— Wartezeitüberschreitung. Standard ist "300"
Optimierungsvariablen
MySQL hat viele Einstellungen, um die Leistung und den Ressourcenverbrauch anzupassen. Diese Rolle unterstützt das Setzen oder Berechnen einiger der relevantesten.
mysql_mem_percent
— Prozentsatz des Gesamtspeichers, den MySQL verwenden soll. Dies ist keineswegs eine Obergrenze, sondern mehr ein Ziel zur Berechnung anderer Variablen. Standard ist "40".innodb_buffer_pool_percent
— Prozentsatz des MySQL-Speichers, der für den InnoDB-Pufferpool verwendet werden soll. Standard ist "90".innodb_buffer_pool_size
— Menge des Gesamtspeichers, die für den InnoDB-Pufferpool verwendet werden soll. Standard wird basierend aufmysql_mem_percent
undinnodb_buffer_pool_percent
berechnet.innodb_buffer_pool_chunk_size
— InnoDB-Pufferpool-Chunksize. Standard ist "128M".mysql_key_buffer_percent
— Prozentsatz des MySQL-Speichers, der für den Schlüsselpuffer verwendet werden soll. Standard ist "40".mysql_key_buffer_size
— Menge des Gesamtspeichers, die für den MySQL-Schlüsselpuffer verwendet werden soll. Standard wird basierend aufmysql_mem_percent
undmysql_key_buffer_percent
berechnet.mysql_max_heap_table_size
— Maximale Heap-Tabellegröße. Standard wird basierend auf dem Gesamtspeicher berechnet.mysql_open_files_limit
— Limit für geöffnete Dateien. Standard ist 32 pro MB Gesamtspeicher.mysql_tmp_table_size
— Größe temporärer Tabellen. Standard wird basierend auf dem Gesamtspeicher berechnet.
Passwortvalidierungsvariablen
Mit dieser Rolle können Sie die Anforderungen für die Passwortvalidierung Ihres Servers festlegen. Diese Konfiguration wird in Entwicklungsumgebungen übersprungen.
mysql_password_policy
— MySQL-Passwortrichtlinie. Standard ist "MEDIUM" (in MariaDB ignoriert).mysql_password_check_username
— Überprüfen, ob das Passwort eines Benutzers seinen Benutzernamen enthält. Standard ist "AUS" (in MariaDB ignoriert).mysql_password_length
— Anforderungen an die Passwortlänge. Standard ist "5".mysql_password_mixed_case_count
— Anzahl der erforderlichen gemischten Groß- und Kleinbuchstaben. Standard ist "0".mysql_password_number_count
— Anzahl der erforderlichen Ziffern. Standard ist "0".mysql_password_special_char_count
— Anzahl der erforderlichen nicht-alphanumerischen Zeichen. Standard ist "0".
Weitere Anpassungsvariablen
innodb_io_capacity
— InnoDB IO-Kapazität. Standard ist "400".innodb_log_buffer_size
— Größe des InnoDB-Protokollpuffers. Standard ist "16M".myisam_sort_buffer_size
— Größe des MyISAM-Sortierpuffers. Standard ist "128M".mysql_bulk_insert_buffer_size
— Größe des Bulk-Insert-Puffers. Standard ist "16M".mysql_max_allowed_packet
— Maximale Paketgröße. Standard ist "16M".mysql_query_cache_type
— Ob der MySQL-Query-Cache aktiviert werden soll. Standard ist "ON".mysql_query_cache_size
— Größe des Abfrage-Caches. Standard ist "32M", wenn der Abfrage-Cache aktiviert ist, sonst "0".mysql_query_cache_limit
— Abfragegrößenlimit für den Cache. Standard ist "1M".mysql_read_buffer_size
— Größe des Lese-Puffers. Standard ist "2M".mysql_read_rnd_buffer_size
— Größe des zufälligen Lese-Puffers. Standard ist "2M".mysql_sort_buffer_size
— Größe des Sortierpuffers. Standard ist "2M".mysql_table_open_cache
— Tabelle öffnen Cache. Standard ist "2000".
Beispiel-Playbook
Installieren eines Dienstes (MariaDB):
- hosts: servers
roles:
- role: bbatsche.MySQL
install_mariadb: ja
Erstellen eines neuen Benutzers (vorausgesetzt, ein Dienst ist bereits installiert und läuft):
- hosts: servers
roles:
- role: bbatsche.MySQL
new_db_user: mein_neuer_benutzer
new_db_pass: n0tV3ry$ecuRe
Lizenz
MIT
Tests
In dieser Rolle ist ein Set von Spezifikationen enthalten, um jede Aufgabe einzeln oder insgesamt zu testen. Um diese Tests auszuführen, müssen Sie zuerst Vagrant und VirtualBox installiert haben. Die Spezifikationsdateien sind mit Serverspec geschrieben, daher benötigen Sie Ruby und Bundler.
Um die vollständige Suite von Spezifikationen auszuführen:
$ gem install bundler
$ bundle install
$ rake
Die Spezifikationssuite zielt auf Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) und Bionic Beaver (18.04).
Um die verfügbaren Rake-Tasks (und Spezifikationen) anzuzeigen:
$ rake -T
Diese Spezifikationen sind nicht dazu gedacht, die Idempotenz zu testen. Sie sollen sicherstellen, dass die angegebenen Aufgaben die erwarteten Schritte ausführen. Die Idempotenz wird unabhängig über Integrationstests getestet.
Simple role for installing the default version of MySQL for Ubuntu
ansible-galaxy install bbatsche.MySQL