code

Ansible MariaDB 10.1.47 암호가 강제되지 않음

starcafe 2023. 8. 26. 12:01
반응형

Ansible MariaDB 10.1.47 암호가 강제되지 않음

다음과 같은 응답 가능한 스크립트를 실행한 후 mysql 서버(root@localhost)의 root 로그인은 암호 promp 없이 로그인을 전달합니다.(cli 명령을 사용하면 문제가 없습니다.

- name: "Set the root password"
  mysql_user:
    login_user: root
    login_password: ''
    name: root
    password: "{{ mysql_root_password }}"
    priv: "*.*:ALL,GRANT"
    check_implicit_admin: yes
    host: localhost
    login_unix_socket: /var/run/mysqld/mysqld.sock


- name: "Remove all anonymous user accounts"
  mysql_user:
    name: ''
    host_all: yes
    state: absent
    login_user: root
    login_password: "{{ mysql_root_password }}"
    login_unix_socket: /var/run/mysqld/mysqld.sock


#mysql_secure_installation
- name: "Remove MySQL test database"
  mysql_db:
    name: test
    state: absent
    login_unix_socket: /var/run/mysqld/mysqld.sock


- name: "Creates db"
  mysql_db:
    name: "{{ db_name }}"
    state: present
    login_user: root
    login_password: "{{ mysql_root_password }}"
    login_unix_socket: /var/run/mysqld/mysqld.sock

지금은 이 해결 방법을 사용하고 있으며 올바르게 작동하고 있습니다.

- name: "Set database password"
  command: mysql --user=root --password={{ mysql_root_password }} --execute="SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{{ mysql_root_password }}')";

- name: "Grant all to root"
  command: mysql --user=root --password={{ mysql_root_password }} mysql --execute="GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';";

- name: "Disable socket plugin"
  command: mysql --user=root --password={{ mysql_root_password }} mysql --execute="update user set Plugin='' where User='root';";

- name: "Flush privileges"
  command: mysql --user=root --password={{ mysql_root_password }} mysql --execute="flush privileges";

unix_socket_plugin을 사용하지 않는 것처럼 보이지만 그렇지 않으면 .my.cnf에서 mysql-client 암호를 지정해도 연결되지 않습니다.

언급URL : https://stackoverflow.com/questions/65062002/ansible-mariadb-10-1-47-no-password-is-forced

반응형