sql >> Databáze >  >> RDS >> Mysql

Nainstalujte MySQL s ansible na ubuntu

Když mysql-server je nainstalován bezhlavě, neexistuje žádné heslo. Proto vytvořit .my.cnf práce, měl by mít prázdný řádek s heslem. Zde je to, s čím jsem testoval .my.cnf :

[client]
user=root
password=

Je také trochu zvláštní umístit .my.cnf ve vašem vagrant uživatelský adresář vlastněný uživatelem root a čitelný pouze jako uživatel root.

Poté, co se ujistil, že heslo v .my.cnf bylo prázdné , byl jsem schopen správně nastavit heslo pro root v těchto čtyřech kontextech. Všimněte si, že se poté nespustí, protože .my.cnf bude nutné aktualizovat, takže neprojde testem idempotence.

Na stránce modulu ansible mysql_user je poznámka, která navrhuje napsat heslo a pak zápis .my.cnf soubor. Pokud to uděláte, potřebujete where klauzule do mysql_user akce (pravděpodobně se statistikou souboru před tím).

Ještě elegantnější je použít check_implicit_admin spolu s login_user a login_password . To je krásně idempotentní.

Jako třetí způsob možná check_implicit_admin je to ještě jednodušší.

Zde je můj úspěšný playbook, který ukazuje výše uvedené, testovaný na několika nových serverech. Na tohle jsem docela hrdý. Poznámka:.my.cnf je pro to všechno zbytečné.

---
- hosts: mysql
  vars:
    mysql_root_password: fart
  tasks:
  - name: Install MySQL
    apt: name={{ item }} update_cache=yes cache_valid_time=3600 state=present
    sudo: yes
    with_items:
    - python-mysqldb
    - mysql-server
  #- name: copy cnf
  #  copy: src=.my.cnf dest=~/.my.cnf owner=ubuntu mode=0644
  #  sudo: yes
  - name: Start the MySQL service
    sudo: yes
    service: 
      name: mysql 
      state: started
      enabled: true
  - name: update mysql root password for all root accounts
    sudo: yes
    mysql_user: 
      name: root 
      host: "{{ item }}" 
      password: "{{ mysql_root_password }}"
      login_user: root
      login_password: "{{ mysql_root_password }}"
      check_implicit_admin: yes
      priv: "*.*:ALL,GRANT"
    with_items:
      - "{{ ansible_hostname }}"
      - 127.0.0.1
      - ::1
      - localhost 

(edit- remove my.cnf)



  1. Chyba připojení PDO při použití symfony a MAMP

  2. SQLite Order By

  3. Jak používat python mysqldb k vložení mnoha řádků najednou

  4. Existují nějaké bezplatné nástroje pro generování skriptů 'INSERT INTO' v MS SQL Server?