Mysql
 sql >> база данни >  >> RDS >> Mysql

Ansible идемпотентна MySQL инсталация Playbook

Публикувах за това на coderwall , но ще възпроизведа подобрението на dennisjac в коментарите на оригиналната си публикация.

Номерът да го направите идемпотентно е да знаете, че модулът mysql_user ще зареди файл ~/.my.cnf, ако намери такъв.

Първо променям паролата, след което копирам .my.cnf файл с идентификационните данни за паролата. Когато се опитате да го стартирате втори път, модулът myqsl_user ansible ще намери .my.cnf и ще използва новата парола.

- hosts: staging_mysql
  user: ec2-user
  sudo: yes

  tasks:
    - name: Install MySQL
      action: yum name={{ item }}
      with_items:
        - MySQL-python
        - mysql
        - mysql-server

    - name: Start the MySQL service
      action: service name=mysqld state=started

    # 'localhost' needs to be the last item for idempotency, see
    # http://ansible.cc/docs/modules.html#mysql-user
    - name: update mysql root password for all root accounts
      mysql_user: name=root host={{ item }} password={{ mysql_root_password }} priv=*.*:ALL,GRANT
      with_items:
        - "{{ ansible_hostname }}"
        - 127.0.0.1
        - ::1
        - localhost

    - name: copy .my.cnf file with root password credentials
      template: src=templates/root/.my.cnf dest=/root/.my.cnf owner=root mode=0600

Шаблонът .my.cnf изглежда така:

[client]
user=root
password={{ mysql_root_password }}

Редактиране:Добавени са привилегии, както е препоръчано от Dhananjay Nene в коментарите, и променена интерполация на променлива, за да се използват скоби вместо знак за долар .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да поправя MySQL грешка #1064?

  2. ГРЕШКА В MySql 1045 (28000):Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:НЕ)

  3. Зареждане на маркери от XML файл в API на Google Map

  4. Python - mysqlDB, sqlite резултат като речник

  5. Какво е схема на база данни?