首先添加mysql8.0yum源,然后安装mysql,我这里用的是本地的ftp源
- name: add mysql80 yum repo
yum_repository:
name: mysql80
description: mysql80
file: mysql80
baseurl: ftp://10.11.0.254/software/mysql8.0.37/
gpgcheck: no
enabled: yes
- name: install MySQL8.0.37
yum:
name: mysql-community-server
state: present
然后推送mysq配置文件,因为mysql8.0使用密码认证插件是caching_sha2_password,而ansible剧本中一些模块不支持,所以修改配置文件,使用默认mysql_native_password插件
default-authentication-plugin=mysql_native_password
然后启动mysql服务,并在日志中获取临时密码
- name: start MySQL8.0.37
service:
name: mysqld
state: started
enabled: yes
- name: get raw password
shell: grep "temporary password" /var/log/mysqld.log | tail -n 1 | awk '{print $NF}'
register: mysql_raw_password
ignore_errors: true
在修改root密码中,我最开始想用mysql_user模块来修改root用户密码,但是最先报没有python模块来调用mysql,{"changed": false, "msg": "The PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) module is required."},之后安装模块之后一直报Your password has expired问题,尝试各种方法都没有解决,最后只能用shell命令修改root密码
- name: change MySQL password
shell: mysql -uroot -p"{{ mysql_raw_password.stdout }}" --connect-expired-password -e "alter user 'root'@'localhost' identified by 'WWW.1.com'"
ignore_errors: true
安装python连接数据库的模块MySQL-python
- name: install mysql-python
yum:
name: MySQL-python
state: present
然后建立wordpress库
- name: create wordpress database
mysql_db:
name: wordpress
login_user: root
login_password: WWW.1.com
login_host: localhost
state: present
建立wpuser用户,密码WWW.1.com,并授予wordpress库所有权限
- name: create wordpress user
mysql_user:
name: wpuser
password: WWW.1.com
login_user: root
login_password: WWW.1.com
login_host: localhost
host: localhost
priv: 'wordpress.*:ALL'
state: present