sql >> データベース >  >> RDS >> Mysql

Ansibleべき等MySQLインストールプレイブック

    これについては、coderwall に投稿しました。 、しかし、元の投稿のコメントでdennisjacの改善を再現します。

    それを無差別に行う秘訣は、mysql_userモジュールが〜/.my.cnfファイルを見つけた場合にそれをロードすることを知っていることです。

    最初にパスワードを変更してから、パスワードの資格情報を含む.my.cnfファイルをコピーします。 2回目に実行しようとすると、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. PHPのPDOを使用してmysqlデータベースにデータを挿入したい。しかし、データは挿入されません

    2. SQLServerのパフォーマンスTOPIOクエリ-2

    3. php:セッションとデータベース

    4. 正規表現str_replace