2016-07-22 4 views
2

CentOS 7でVagrantとAnsbleを使用しています。 MySQL 5.7をインストールしようとしていますが、MySQLパスワードを更新しようとすると問題が発生します。Vagrant Anabilities 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

この問題を解決するには、 'geerlingguy.mysql'のようなよくテストされた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 
関連する問題