zauberpony.mysql-query
Rola Ansible: mysql_query
Moduł Ansible do ustawiania wartości w tabeli mysql lub dodawania rekordów. Przydatny dla aplikacji internetowych, które przechowują konfiguracje w bazie danych. Na przykład icingaweb2 wymaga, aby początkowy użytkownik został dodany do bazy danych. Kreator instalacji mógłby to zrobić, ale przy użyciu ansible chcesz zautomatyzować instalację ;)
Umieszczony na stronie Ansible Galaxy jako zauberpony.mysql-query.
Instalacja
Zainstaluj za pomocą ansible-galaxy, używając polecenia ansible-galaxy install zauberpony.mysql-query
, lub ręcznie umieść plik mysql_query w swoim roles_path.
Wymagania:
biblioteki python dla mysql (podobnie jak podstawowe moduły mysql_*):
- MySQLdb (tylko Python 2.x)
- PyMySQL (Python 2.7 i Python 3.x)
Przykład playbooka
Kompletna przykładowa instalacja, która zapewnia obecność rekordu w danej tabeli.
---
- hosts: all
roles:
- zauberpony.mysql-query
tasks:
- name: wstawienie wiersza
mysql_query:
name: ansible-playbook-example
table: simple_table
login_host: ::1
login_user: root
login_password: password
identifiers:
id: 14
email: '[email protected]'
values:
role: "admin"
department: 'IT'
defaults:
password: "secret"
last_login: 1469264933
Dla tabeli simple_table
z kolumnami (id, email, role, department, password, last_login), ten przykład:
- Szuka wiersza gdzie id = 14 i email = 'john@example.com'
- jeśli wiersz nie istnieje: dodaje wiersz z id=14, email='john@example.com', role="admin", department="IT", password="secret", last_login=1469264933
- jeśli wiersz istnieje: sprawdza, czy values (role, department) odpowiadają podanym wartościom, jeśli nie: aktualizuje
Tak więc:
- identifiers są używane do sprawdzania istnienia i odnajdywania wiersza
- defaults są używane jako wartości domyślne, jeśli wiersz nie jest obecny (tj. używane tylko do dodania)
- values to stan wiersza, który ansible zapewnia
Kompletna przykładowa instalacja, która zapewnia, że rekord nie jest obecny w danej tabeli.
---
- hosts: all
roles:
- zauberpony.mysql-query
tasks:
- name: wstawienie wiersza
mysql_query:
state: absent
name: ansible-playbook-example
table: simple_table
login_host: ::1
login_user: root
login_password: password
identifiers:
id: 14
email: '[email protected]'
Uruchamianie przykładów z źródeł
Upewnij się, że masz działający serwer mysql (np. użyj pliku docker-compose.yml) i zaktualizuj parametry połączenia, jeśli to konieczne.
Uruchom poprzez ansible-playbook -i demo.yml
(lub jeszcze prościej ./demo.yml
) i przywróć (aby zacząć od nowa) za pomocą ansible-playbook -i reset.yml
.
Po uruchomieniu ./demo.yml
, możesz uruchomić ./checkmode-demo.yml -C
, aby przetestować tryb kontrolny ansible check mode.
Po prostu uruchom ./demo.yml
i ./checkmode-demo.yml
kilka razy z -C
i bez -C
, aby poczuć, jak to działa.
module to insert/update/delete a record in a mysql table
ansible-galaxy install zauberpony.mysql-query