bbatsche.MySQL

Ansible MySQL Rola

Status budowy Licencja Nazwa roli Wersja wydania Pobrania

Ta rola zainstaluje i skonfiguruje MySQL, MariaDB lub serwer Percona oraz/lub stworzy bazy danych i użytkowników dla tych serwerów.

Proszę zauważyć, że tylko jeden serwer może być zainstalowany w danym momencie, a ta rola nie obsługuje przechodzenia z jednego typu serwera na inny.

Zmienne roli

  • db_admin — Nazwa użytkownika administratora do utworzenia. Domyślna wartość to "vagrant"
  • db_pass — Hasło dla użytkownika administratora do utworzenia. Domyślna wartość to "vagrant"
  • env_name — Określenie, czy ten serwer będzie używany do "rozwoju", "produkcji" itp. Domyślna wartość to "dev"
  • install_mysql — Instalacja serwera MySQL. Domyślna wartość to nie
  • install_mariadb — Instalacja serwera MariaDB. Domyślna wartość to nie
  • install_percona — Instalacja serwera Percona. Domyślna wartość to nie.
  • new_db_name — Nazwa bazy danych do utworzenia. Domyślna wartość to nieokreślona (pomijana)
  • new_db_user — Nazwa użytkownika nowego użytkownika do utworzenia. Domyślna wartość to nieokreślona (pomijana)
  • new_db_pass — Hasło nowego użytkownika do utworzenia. Domyślna wartość to nieokreślona (pomijana)
  • new_db_priv — Uprawnienia do nadania nowemu użytkownikowi. Domyślna wartość to pełna kontrola nad serwerem lub bazą danych (jeśli określona)
  • remove_root_user — Usunięcie użytkownika root podczas instalacji. Domyślna wartość to usunięcie go.
  • mysql_deb — URL repozytorium MySQL do dodania do APT. Domyślna wartość to "https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb"
  • mariadb_apt_key.trusty — Klucz APT do instalacji MariaDB na Trusty Tahr. Domyślna wartość to "0xcbcb082a1bb943db"
  • mariadb_apt_key.xenial — Klucz APT do instalacji MariaDB na Xenial Xerus. Domyślna wartość to "0xF1656F24C74CD1D8"
  • mariadb_version — Wersja MariaDB do instalacji. Domyślna wartość to "10.2"
  • mariadb_apt_mirror — Lustro do pobierania MariaDB. Domyślna wartość to "http://nyc2.mirrors.digitalocean.com"
  • percona_deb — URL repozytorium serwera Percona do dodania do APT. Domyślna wartość to "https://repo.percona.com/apt/percona-release_0.1-4.{{ ansible_distribution_release }}_all.deb"
  • percona_version — Wersja serwera Percona do instalacji. Domyślna wartość to "5.7"
  • mysql_socket — Ścieżka do gniazda MySQL. Domyślna wartość to "/var/run/mysqld/mysqld.sock"
  • mysql_enable_network — Czy nasłuchiwać połączeń z sieci zewnętrznej. Domyślna wartość to nie
  • mysql_sql_mode — Tryb SQL do użycia. Domyślna wartość to "ANSI,TRADITIONAL"
  • mysql_max_connections — Maksymalna liczba dozwolonych połączeń. Domyślna wartość to "300"
  • mysql_wait_timeout — Czas oczekiwania. Domyślna wartość to "300"

Zmienne do dostosowywania

MySQL ma wiele ustawień, które można dostosować, aby poprawić jego wydajność i wykorzystanie zasobów. Ta rola wspiera ustawianie lub obliczanie kilku najbardziej istotnych zmiennych.

  • mysql_mem_percent — Procent całkowitej pamięci, którą powinien wykorzystywać MySQL. To nie jest limit, bardziej cel używany do obliczania niektórych innych zmiennych. Domyślna wartość to "40"
  • innodb_buffer_pool_percent — Procent pamięci MySQL przeznaczony na pulę buforową InnoDB. Domyślna wartość to "90"
  • innodb_buffer_pool_size — Ilość pamięci przeznaczonej na pulę buforową InnoDB. Domyślna wartość jest obliczana na podstawie mysql_mem_percent i innodb_buffer_pool_percent
  • innodb_buffer_pool_chunk_size — Rozmiar fragmentu puli buforowej InnoDB. Domyślna wartość to "128M"
  • mysql_key_buffer_percent — Procent pamięci MySQL przeznaczony na bufor kluczy. Domyślna wartość to "40"
  • mysql_key_buffer_size — Ilość pamięci przeznaczonej na bufor kluczy MySQL. Domyślna wartość jest obliczana na podstawie mysql_mem_percent i mysql_key_buffer_percent
  • mysql_max_heap_table_size — Maksymalny rozmiar tabeli w pamięci. Domyślna wartość jest obliczana na podstawie całkowitej pamięci
  • mysql_open_files_limit — Limit otwartych plików. Domyślna wartość to 32 na MB całkowitej pamięci
  • mysql_tmp_table_size — Rozmiar tabeli tymczasowej. Domyślna wartość jest obliczana na podstawie całkowitej pamięci

Zmienne walidacji hasła

Ta rola pozwala na określenie wymagań dotyczących walidacji haseł dla twojego serwera. Ta konfiguracja jest pomijana w środowiskach deweloperskich.

  • mysql_password_policy — Polityka haseł MySQL. Domyślna wartość to "MEDIUM" (ignorowane w MariaDB)
  • mysql_password_check_username — Sprawdzenie, czy hasło użytkownika zawiera jego nazwę użytkownika. Domyślna wartość to "OFF" (ignorowane w MariaDB)
  • mysql_password_length — Wymagania dotyczące długości hasła. Domyślna wartość to "5"
  • mysql_password_mixed_case_count — Liczba wymaganych znaków o mieszanej wielkości. Domyślna wartość to "0"
  • mysql_password_number_count — Liczba wymaganych cyfr. Domyślna wartość to "0"
  • mysql_password_special_char_count — Liczba wymaganych znaków specjalnych. Domyślna wartość to "0"

Inne zmienne dostosowujące

  • innodb_io_capacity — Pojemność I/O InnoDB. Domyślna wartość to "400"
  • innodb_log_buffer_size — Rozmiar bufora logów InnoDB. Domyślna wartość to "16M"
  • myisam_sort_buffer_size — Rozmiar bufora sortowania MyISAM. Domyślna wartość to "128M"
  • mysql_bulk_insert_buffer_size — Rozmiar bufora dla masowego wstawiania. Domyślna wartość to "16M"
  • mysql_max_allowed_packet — Maksymalny rozmiarpakietu. Domyślna wartość to "16M"
  • mysql_query_cache_type — Czy włączyć pamięć podręczną zapytań MySQL. Domyślna wartość to "ON"
  • mysql_query_cache_size — Rozmiar pamięci podręcznej zapytań. Domyślna wartość to "32M" jeśli pamięć podręczna zapytań jest włączona, inaczej "0"
  • mysql_query_cache_limit — Limit rozmiaru zapytań dla pamięci podręcznej. Domyślna wartość to "1M"
  • mysql_read_buffer_size — Rozmiar bufora odczytu. Domyślna wartość to "2M"
  • mysql_read_rnd_buffer_size — Rozmiar bufora losowego odczytu. Domyślna wartość to "2M"
  • mysql_sort_buffer_size — Rozmiar bufora sortowania. Domyślna wartość to "2M"
  • mysql_table_open_cache — Pamięć podręczna otwartych tabel. Domyślna wartość to "2000"

Przykładowy playbook

Zainstaluj serwis (MariaDB):

- hosts: servers
  roles:
     - role: bbatsche.MySQL
       install_mariadb: yes

Utwórz nowego użytkownika (zakładając, że serwis jest już zainstalowany i działa):

- hosts: servers
  roles:
     - role: bbatsche.MySQL
       new_db_user: my_new_user
       new_db_pass: n0tV3ry$ecuRe

Licencja

MIT

Testowanie

W skład tej roli wchodzi zestaw specyfikacji do testowania każdego zadania indywidualnie lub jako całości. Aby uruchomić te testy, musisz najpierw zainstalować Vagrant i VirtualBox. Pliki specyfikacji są napisane przy użyciu Serverspec, więc będziesz potrzebować Ruby i Bundler.

Aby uruchomić pełny zestaw specyfikacji:

$ gem install bundler
$ bundle install
$ rake

Zestaw specyfikacji będzie testować Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) i Bionic Beaver (18.04).

Aby zobaczyć dostępne zadania rake (i specyfikacje):

$ rake -T

Te specyfikacje nie są przeznaczone do testowania idempotencji. Mają na celu sprawdzenie, czy określone zadania wykonują swoje oczekiwane kroki. Idempotencja jest testowana niezależnie poprzez testy integracyjne.

O projekcie

Simple role for installing the default version of MySQL for Ubuntu

Zainstaluj
ansible-galaxy install bbatsche.MySQL
Licencja
mit
Pobrania
4.8k
Właściciel