2016-07-22 2 views
2

Я использую Vagrant и Ansble на CentOS 7. Я пытаюсь установить MySQL 5.7, но у меня возникла проблема при попытке обновления пароля MySQL.Vagrant Ansible CentOS 7 Как установить MySQL 5.7 и изменить пароль по умолчанию

- name: Install MySQL 5.7 repo 
    yum: name=http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm state=present 

- name: Install MySQL 5.7 
    yum: pkg={{ item }} 
    with_items: 
    - mysql-community-server 
    - MySQL-python 

- name: Start the MySQL service 
    service: name=mysqld state=started enabled=true 

- name: update mysql root passwd 
    mysql_user: name=root 
      host={{ item }} 
      password='PassW0rd' 
      check_implicit_admin=yes 
      login_user=root 
      login_password='' 
      state=present 
    with_items: 
    - 127.0.0.1 
    - ::1 
    - localhost 

Я исследовал и обнаружил, что MySQL 5.7 автоматически генерирует пароль по умолчанию, поэтому мой скрипт не удался. Кто-нибудь поможет мне решить эту проблему?

+0

Для исправления этой проблемы существуют хорошо протестированные роли mysql, такие как 'geerlingguy.mysql'. Возможно, посмотрите на источник: https://github.com/geerlingguy/ansible-role-mysql – mblaettermann

ответ

0
tasks: 
    - name: Install MySQL 5.7 repo 
    yum: name=http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm state=present 

    - name: Install MySQL 5.7 
    yum: pkg={{ item }} 
    with_items: 
    - mysql-community-server 
    - mysql-community-client 
    - MySQL-python 

    - name: Start the MySQL service 
    service: name=mysqld state=started enabled=true 

    - name: Change mysql root password and keep track in 
    shell: | 
     password_match=`awk '/A temporary password is generated for/ {a=$0} END{ print a }' /var/log/mysqld.log | awk '{print $(NF)}'` 
     echo $password_match 
     mysql -uroot -p$password_match --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'PassW0rd'; flush privileges; " 
     echo "[client] 
     user=root 
     password=PassW0rd > /root/.my.cnf 
    args: 
     creates: /root/.my.cnf 
    register: change_temp_pass 
    notify: restart mysqld 

    - meta: flush_handlers  
    - debug: 
      var: change_temp_pass 
handlers: 
    - name: restart mysqld 
     service: 
     name: mysqld 
     state: restarted 

 Смежные вопросы

  • Нет связанных вопросов^_^