bbatsche.MySQL

Ansible MySQL Rolle

Build Status Lizenz Rollenname Versionsnummer Downloads

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 auf mysql_mem_percent und innodb_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 auf mysql_mem_percent und mysql_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.

Über das Projekt

Simple role for installing the default version of MySQL for Ubuntu

Installieren
ansible-galaxy install bbatsche.MySQL
GitHub Repository
Lizenz
mit
Downloads
4.8k
Besitzer