<!–
MySQL 通过使用Ansible编写一个可重复使用且不会影响已经安装的MySQL的MySQL安装Playbook
如果您是一名 DBA或开发人员,那么您肯定熟悉使用Ansible和。Ansible是一个自动化工具,而MySQL则是一种流行的关系型数据库。在本文中,我们将通过使用Ansible编写一个可重复使用且不会影响已经安装的MySQL的MySQL安装Playbook。
阅读更多:
开始
首先,我们需要确保Ansible已安装在我们的系统中。然后,我们需要在我们的Ansible主机上安装MySQL仓库。这可以通过以下Playbook完成:
(adsbygoogle = window.adsbygoogle || []).push({});
---
- name: Install MySQL Repo
hosts: mysql
become: yes
tasks:
- name: Install dependencies
yum:
name: "{{ item }}"
state: present
with_items:
- epel-release
- https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
安装MySQL
接下来,我们需要编写一个Ansible MySQL安装Playbook,该Playbook在干净的CentOS 7实例上安装MySQL。
---
- name: Install MySQL
hosts: mysql
become: yes
vars:
mysql_admin_password: "mysqladminpassword"
mysql_root_password: "mysqlrootpassword"
tasks:
- name: Install MySQL Server
yum:
name: mysql-community-server
state: present
- name: Start MySQL Service
service:
name: mysqld
state: started
- name: Set MySQL root password
mysql_user:
name: root
password: "{{ mysql_root_password }}"
login_user: root
login_password: ""
login_unix_socket: /var/run/mysqld/mysqld.sock
host_all: yes
check_implicit_admin: yes
- name: Secure MySQL Installation
mysql_secure_installation:
login_password: "{{ mysql_root_password }}"
login_user: root
mysqladmin: /usr/bin/mysqladmin
default_file: /etc/my.cnf
validate_certs: False
change_root_password: False
remove_anonymous_users: True
disallow_root_login_remotely: True
remove_test_database: True
create_test_database: False
- name: Create MySQL Admin User
mysql_user:
name: admin
host: "{{ item }}"
password: "{{ mysql_admin_password }}"
login_user: root
login_password: "{{ mysql_root_password }}"
state: present
with_items:
- '127.0.0.1'
- '::1'
- 'localhost'
- name: Set MySQL Remote Access
mysql_user:
name: admin
host: '%'
password: "{{ mysql_admin_password }}"
login_user: root
login_password: "{{ mysql_root_password }}"
state: present
- name: Reload MySQL Service
service:
name: mysqld
state: reloaded
使用Playbook
要运行此Playbook,请使用以下命令:
ansible-playbook -i inventory.ini mysql.yml
使用您自己的MySQL管理员和根密码更改“mysql_root_password”和“mysql_admin_password”变量。
总结
在本文中,我们成功编写了一个可以自动化安装MySQL并可以多次使用而不影响先前安装的MySQL的Ansible Playbook。尽管这只是一个简单的示例,但这个概念可以扩展到更复杂的Playbook中,以管理大型MySQL部署。