ansible 创建mysql用户
时间: 2023-08-28 09:06:42 浏览: 45
你可以使用 Ansible 来创建 MySQL 用户。下面是一个示例的 Ansible playbook,用于创建一个名为 "myuser" 的 MySQL 用户,并且授予该用户在 "mydb" 数据库上的所有权限:
```yaml
- name: Create MySQL user
hosts: your_mysql_host
become: true # 如果需要提升权限,请设置为 true
tasks:
- name: Install MySQL Python package
pip:
name: MySQL-python
state: present
- name: Create MySQL user
mysql_user:
name: myuser
password: mypassword
priv: 'mydb.*:ALL'
state: present
```
请确保在运行此 playbook 之前已经安装了 Ansible,并将 `your_mysql_host` 替换为你的 MySQL 主机的地址。
当你运行这个 playbook 时,Ansible 将在指定的 MySQL 主机上创建一个名为 "myuser" 的用户,并设置密码为 "mypassword",然后授予该用户在 "mydb" 数据库上的所有权限。
注意:在运行 playbook 之前,请根据你的环境和需求进行适当的更改和配置。
相关问题
ansible创建mysql主从
使用Ansible创建MySQL主从复制的步骤如下:
1. 首先,在Ansible主机上安装Ansible,可以使用以下命令安装特定版本的Ansible:
```
pip install ansible==2.9
```
2. 然后,在Ansible主机上创建一个Ansible playbook文件,用于定义任务和配置。
3. 在playbook文件中,定义主服务器和从服务器的主机组和变量。例如:
```
[mysql_master]
10.4.0.17
[mysql_slave]
10.4.0.22
[mysql:children]
mysql_master
mysql_slave
[mysql:vars]
mysql_root_password=YourRootPassword
mysql_replication_user=YourReplicationUser
mysql_replication_password=YourReplicationPassword
```
在这个例子中,我们定义了两个主机组(mysql_master和mysql_slave)和一个父组(mysql),并设置了MySQL的根密码(mysql_root_password)和复制用户(mysql_replication_user)的密码(mysql_replication_password)。
4. 接下来,编写任务来配置主从复制。在playbook文件中,使用mysql_replication模块和一些变量来配置主从复制。例如:
```
- name: Configure MySQL master
hosts: mysql_master
become: true
become_user: root
tasks:
- name: Create replication user
mysql_user:
name: "{{ mysql_replication_user }}"
host: "%"
password: "{{ mysql_replication_password }}"
priv: "*.*:REPLICATION SLAVE"
state: present
register: replication_user_result
- name: Get master status
mysql_replication:
mode: status
register: master_status_result
- name: Configure MySQL slave
hosts: mysql_slave
become: true
become_user: root
tasks:
- name: Start slave replication
mysql_replication:
mode: change_master
master_host: "{{ hostvars['mysql_master'].inventory_hostname }}"
master_user: "{{ mysql_replication_user }}"
master_password: "{{ mysql_replication_password }}"
master_log_file: "{{ hostvars['mysql_master']['master_status_result']['File'] }}"
master_log_pos: "{{ hostvars['mysql_master']['master_status_result']['Position'] }}"
state: start_slave
```
这个任务首先在主服务器上创建复制用户,然后获取主服务器的状态。然后,在从服务器上配置从服务器的复制设置。
5. 最后,在Ansible主机上运行playbook文件,以创建MySQL主从复制。例如:
```
ansible-playbook playbook.yml
```
ansible传入mysql
可以使用Ansible的mysql_db模块来与MySQL进行交互,以下是一个使用Ansible playbook创建MySQL数据库和用户的示例:
```
- hosts: db_servers
become: true
tasks:
- name: Create MySQL database
mysql_db:
name: my_database
state: present
register: db_result
- name: Create MySQL user
mysql_user:
name: my_user
password: my_password
priv: "my_database.*:ALL"
state: present
register: user_result
```
在这个示例中,我们使用mysql_db模块创建了名为“my_database”的数据库,并使用mysql_user模块创建了名为“my_user”的MySQL用户,并将其授权访问“my_database”。这些模块的使用方式与其他Ansible模块类似,可以通过Ansible文档来了解更多细节。