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

Ubuntuにansibleを使用してMySQLをインストールする

    mysql-serverの場合 ヘッドレスでインストールされ、パスワードはありません。したがって、.my.cnfを作成します 動作します。空白のパスワード行が必要です。これが私が.my.cnfのためにテストしたものです :

    [client]
    user=root
    password=
    

    .my.cnfを置くのも少し奇妙です vagrantで rootが所有し、rootとしてのみ読み取り可能なユーザーディレクトリ。

    .my.cnfでパスワードが空白であることを確認した後 、これら4つのコンテキストでrootのパスワードを適切に設定できました。 .my.cnfなので、その後は実行できないことに注意してください。 更新する必要があるため、べき等テストに失敗します。

    ansible mysql_userモジュールページに、パスワードを書き込んでから次にを提案するメモがあります。 .my.cnfを書く ファイル。その場合は、whereが必要です mysql_userの句 アクション(おそらくその前のファイル統計を使用)。

    さらにエレガントなのは、check_implicit_adminを使用することです。 login_userと一緒に およびlogin_password 。それは美しくべき等です。

    3番目の方法として、おそらくcheck_implicit_admin さらに簡単になります。

    これが、いくつかの新しいサーバーでテストされた、上記を示す私の成功したプレイブックです。ちょっとこれを誇りに思います。 .my.cnfに注意してください これらすべてに不要です。

    ---
    - 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 
    

    (編集-my.cnfを削除)



    1. MicrosoftAccessがスタートアップに最適な5つの理由

    2. ADODBとOracleでxas(...)を使用できないのはなぜですか?

    3. MicrosoftIgniteでMichalBarとMeに会いましょう!

    4. データベースからの質問の取得をランダム化する方法は?