mahdi22.mariadb_install
Rola Ansible mariadb_install
Jest to rola Ansible do instalacji i zabezpieczania MariaDB w dystrybucjach RHEL/CentOS (7, 8), Debian (9, 10) oraz Ubuntu (20.04, 19.10, 18.04, 16.04). Zadania tej roli obejmują:
- Instalację pakietów MariaDB z oficjalnych repozytoriów MariaDB
- Konfigurację serwera MariaDB
- Ustawienie hasła roota dla bazy danych
- Usunięcie anonimowych użytkowników
- Usunięcie bazy testowej
- Zablokowanie zdalnego połączenia roota
- Utworzenie bazy danych
- Utworzenie użytkownika bazy danych
- Importowanie skryptów *.sql do bazy danych
Instalacja
$ ansible-galaxy install mahdi22.mariadb_install
Zmienne w roli
Podstawowa konfiguracja
Zmienna | Domyślna wartość | Komentarze |
---|---|---|
mariadb_version |
'10.4' | Ustaw wersję MariaDB: - v(10.5 10.4 10.3) dla RHEL/CentOS 8, Debian 10, Ubuntu 20.04, Ubuntu 19.10. - v(10.5 10.4 10.3 10.2 10.1) dla RHEL/CentOS 7, Debian 9, Ubuntu 18.04, Ubuntu 16.04 |
bind-address |
'127.0.0.1' | Ustaw to na adres IP interfejsu sieciowego, na którym ma nasłuchiwać, lub '0.0.0.0', aby nasłuchiwać na wszystkich interfejsach. |
configure_swappiness |
'True' | Kiedy True , ta rola ustawi wartość "swappiness" (patrz mariadb_swappiness ). |
create_database |
'False' | Ustaw create_database: True, aby utworzyć bazę danych. |
database |
'' | Ustaw nazwę bazy danych, użyj z create_database: true. |
port |
3306 | Numer portu, na którym ma nasłuchiwać na żądania klientów. |
mysql_root_password |
'azerty' | Ustaw hasło roota dla MariaDB. |
mariadb_service |
mariadb | Nazwa usługi. |
swappiness |
'10' | Wartość "swappiness" (string). Domyślna wartość to 60. Wartość 0 oznacza, że unika się zamiany procesów. |
create_db_user |
'False' | Ustaw create_db_user: True, aby utworzyć użytkownika bazy danych. |
db_user_name |
'' | Ustaw użytkownika do dodania. Powinno być użyte z create_database: true, create_db_user: true i zdefiniowaną bazą danych. |
db_user_password |
'' | Ustaw hasło dla użytkownika bazy danych. |
priviliges |
'ALL' | Ustaw uprawnienia użytkownika bazy danych. |
mariadb_logrotate: rotate |
'7' | Ustaw liczbę rotacji dziennika mariadb. |
mariadb_logrotate: rotation |
'daily' | Ustaw rotację dziennika mariadb. |
use_proxy |
'False' | Ustaw tę zmienną na True, jeśli zarządzane hosty są za proxy webowym... domyślnie False. |
import_sql_file |
'False' | Ustaw tę zmienną na True, aby zaimportować pliki SQL do baz danych... domyślnie False. |
sql_file_name |
'[]' | Lista nazw plików SQL do zaimportowania do baz danych (jeden lub więcej)... Ta zmienna powinna być zdefiniowana, jeśli import_sql_file jest true. |
Uwagi
(1) Aby usunąć połączenie zdalne dla użytkownika root MySQL, ustaw parametr deny_remote_connections: true. Przykład: defaults/main.yml
deny_remote_connections: true
(2) Zaleca się ustawienie hasła roota bazy danych! Pozostawienie hasła pustego jest ryzykiem bezpieczeństwa. Rola wyda ostrzeżenie, jeśli zmienna nie została ustawiona. Domyślne hasło "azerty". defaults/main.yml
mysql_root_password: 'azerty'
(3) Aby zaimportować skrypt SQL do baz danych, ustaw import_sql_file: true, zdefiniuj sql_file_name i umieść swoje skrypty SQL w katalogu files (mahdi22.mariadb_install/files/). Przykład: defaults/main.yml
import_sql_file: true
sql_file_name:
- sqlscript1.sql
- sqlscript2.sql
- sqlscriptN.sql
Przykładowy Playbook
Przykład playbooka do wykonania roli z domyślnymi parametrami i zmiennymi
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
Przykład playbooka do wykonania roli z niektórymi zmiennymi
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
vars:
mariadb_version: "10.5"
deny_remote_connections: true
mysql_root_password: "azerty"
create_database: true
database: database_test
create_db_user: true
db_user_name: user_database
db_user_password: password
Przykład playbooka do wykonania roli z użyciem Web Proxy
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
vars:
mariadb_version: "10.5"
deny_remote_connections: true
mysql_root_password: "azerty"
create_database: true
database: database_test
create_db_user: true
db_user_name: user_database
db_user_password: password
use_proxy: yes
proxy_env:
http_proxy: http://proxy.local:8080/
https_proxy: http://proxy.local:8080/
Przykład playbooka do wykonania roli z importem skryptu SQL
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
vars:
mariadb_version: "10.5"
deny_remote_connections: true
mysql_root_password: "azerty"
create_database: true
database: database_test
create_db_user: true
db_user_name: user_database
db_user_password: password
use_proxy: yes
proxy_env:
http_proxy: http://proxy.local:8080/
https_proxy: http://proxy.local:8080/
import_sql_file: true
sql_file_name:
- sqlscript1.sql
- sqlscript2.sql
- sqlscriptN.sql
Testowanie
Ta rola została przetestowana na następujących dystrybucjach Linuxa:
- RHEL/CentOS 8
- RHEL/CentOS 7
- Debian 10
- Debian 9
- Debian 8
- Ubuntu 20.04
- Ubuntu 19.10
- Ubuntu 18.04
- Ubuntu 16.04
Install and configure Mariadb server on Rhel/CentOS, Debian and Ubuntu ditributions
ansible-galaxy install mahdi22.mariadb_install