bbatsche.MySQL
Ansible MySQL Rola
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 nieinstall_mariadb
— Instalacja serwera MariaDB. Domyślna wartość to nieinstall_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 niemysql_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 podstawiemysql_mem_percent
iinnodb_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 podstawiemysql_mem_percent
imysql_key_buffer_percent
mysql_max_heap_table_size
— Maksymalny rozmiar tabeli w pamięci. Domyślna wartość jest obliczana na podstawie całkowitej pamięcimysql_open_files_limit
— Limit otwartych plików. Domyślna wartość to 32 na MB całkowitej pamięcimysql_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.
Simple role for installing the default version of MySQL for Ubuntu
ansible-galaxy install bbatsche.MySQL