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.

O projekcie

module to insert/update/delete a record in a mysql table

Zainstaluj
ansible-galaxy install zauberpony.mysql-query
Licencja
gpl-3.0
Pobrania
239.4k
Właściciel