Ansible playbook 部署MySLQ服务 (CentOS & Ubuntu)

服务器环境:
10.211.55.7 – CentOS
10.211.55.13 – Ubuntu

  1. 创建roles(角色)目录文件,上传MySQL相关配置文件
    方法一:
mkdir -pv ./mysql/{templates,tasks,files,vars,handlers}
[root@ansible roles]# tree mysqld/
mysqld/
├── files
│   ├── mysql-community.repo
│   └── mysql-community-source.repo
├── handlers 
├── mysql.yaml
├── tasks
└── vars

方法二:

[root@ansible ansible]# ansible-galaxy init ~/.ansible/roles/mysql
- Role /root/.ansible/roles/mysql was created successfully
/root/.ansible/roles/mysqcd
├── defaults
│   └── main.yml
├── files
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── README.md
├── tasks
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars
    └── main.yml
  1. 编写playbook yaml文件
    创建main.yaml文件
[root@ansible roles]# touch mysqld/{handlers,tasks,vars}/main.yaml

编写安装MySQL服务的yaml文件

vim mysqld/tasks/install.yaml
---

- name: 安装MySQL Yum源
  yum:
    name: https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    state: present
  when:
    - ansible_os_family == "ReHat"

- name: CenOS配置MySQL YUM源
  copy:
    src: "{{ item.src }}"
    dest: "{{ item.dest }}"
  with_items:
    - { src: 'mysql-community-source.repo', dest: '/etc/yum.repos.d/mysql-community-source.repo' }
    - { src: 'mysql-community.repo', dest: '/etc/yum.repos.d/mysql-community.repo' }
  when:
    - ansible_os_family == "RedHat"

- name: Ubuntu配置MySQL Yum源
  copy:
    src: 'mysql-apt-config_0.7.3-1_all.deb'
    dest: '/file/mysql-apt-config_0.7.3-1_all.deb'
  when:
    - ansible_os_family == "Debian"
- name: 安装MySQL-Server服务
  yum:
    name: mysql-server
    state: present
  when:
    - ansible_os_family == "RedHat"
  notify:
    - Start Mysql 

- name: Ubuntu 安装MySQL-Server服务
  script: Ubuntu_install_mysql.sh
  when:
    - ansible_os_family == 'Debian'
  notify:
    - Start Mysql

编辑tasks/main.yaml文件

# 使用Ansible playbook 安装MySQL-Server

---

- include:
      install.yaml

编写handlers目录下的main.yaml文件

---
# handlers file for /root/.ansible/roles/mysql
# 说明:因Ubuntu系统中mysql服务名为:mysql,故此处Mysql服务管理仅供CentOS调用

  - name: Start Mysql
    service: 
      name: mysqld
      state: started
      enabled: yes
    tags: StartMysql

  - name: Reload Mysql
    service: 
      name: mysqld
      state: restarted
    tags: ReloadMysql

  - name: Stop Mysql
    service: 
      name: mysqld
      state:  stopped
    tags: StopMysql

编写Ubuntu系统的MySQL5.7 安装脚本:Ubuntu_install_mysql.sh

#! /bin/bash
  
DEBIAN_FRONTEND=noninteractive dpkg -i /file/mysql-apt-config_0.7.3-1_all.deb
apt update
apt install libtinfo5 libmecab2 -y
apt install -y -f mysql-client=5.7.22-1debian7
apt install -y -f mysql-community-server=5.7.22-1debian7
apt install -y -f mysql-server=5.7.22-1debian

# DEBIAN_FRONTEND=noninteractive 跳过系统交互模式直接确认跳过

编辑roles/roles.yaml文件

---

- hosts: "linuxserver"
  remote_user: root

  roles:
    - { role: mysql }

准备CentOS 及 Ubuntu 系统的MySQL的yum源文件

[root@ansible roles]# tree mysql/files/
mysql/files/
├── mysql-apt-config_0.7.3-1_all.deb  -- Ubuntu
├── mysql-community.repo
└── mysql-community-source.repo

mysqld文件目录结构

[root@ansible roles]# tree mysql
mysql
├── defaults
│   └── main.yml
├── files
│   ├── mysql-apt-config_0.7.3-1_all.deb
│   ├── mysql-community.repo
│   ├── mysql-community-source.repo
│   └── Ubuntu_install_mysql.sh
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── README.md
├── tasks
│   ├── install.yaml
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars
    └── main.yml

8 directories, 13 files

  1. 检测测yaml文件
[root@ansible roles]# ansible-playbook roles.yaml -C

PLAY [linuxserver] *****************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [10.211.55.13]
ok: [10.211.55.7]

TASK [mysql : 安装MySQL Yum源] ********************************************************************************************************************
skipping: [10.211.55.7]
skipping: [10.211.55.13]

TASK [mysql : CenOS配置MySQL YUM源] ***************************************************************************************************************
skipping: [10.211.55.13] => (item={u'dest': u'/etc/yum.repos.d/mysql-community-source.repo', u'src': u'mysql-community-source.repo'}) 
skipping: [10.211.55.13] => (item={u'dest': u'/etc/yum.repos.d/mysql-community.repo', u'src': u'mysql-community.repo'}) 
ok: [10.211.55.7] => (item={u'dest': u'/etc/yum.repos.d/mysql-community-source.repo', u'src': u'mysql-community-source.repo'})
ok: [10.211.55.7] => (item={u'dest': u'/etc/yum.repos.d/mysql-community.repo', u'src': u'mysql-community.repo'})

TASK [mysql : Ubuntu配置MySQL Yum源] **************************************************************************************************************
skipping: [10.211.55.7]
ok: [10.211.55.13]

TASK [mysql : 安装MySQL-Server服务] ****************************************************************************************************************
skipping: [10.211.55.13]
ok: [10.211.55.7]

TASK [mysql : Ubuntu 安装MySQL-Server服务] *********************************************************************************************************
skipping: [10.211.55.7]
changed: [10.211.55.13]

RUNNING HANDLER [mysql : Start Mysql] **********************************************************************************************************
changed: [10.211.55.13]

PLAY RECAP *************************************************************************************************************************************
10.211.55.13               : ok=4    changed=2    unreachable=0    failed=0    skipped=3    rescued=0    ignored=0   
10.211.55.7                : ok=3    changed=0    unreachable=0    failed=0    skipped=3    rescued=0    ignored=0   

  1. 运行安装部署MySQL服务
ansible-playbook roles/roles.yaml
[root@ansible roles]# ansible-playbook roles.yaml

PLAY [linuxserver] *****************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [10.211.55.13]
ok: [10.211.55.7]

TASK [mysql : 安装MySQL Yum源] ********************************************************************************************************************
skipping: [10.211.55.7]
skipping: [10.211.55.13]

TASK [mysql : CenOS配置MySQL YUM源] ***************************************************************************************************************
skipping: [10.211.55.13] => (item={u'dest': u'/etc/yum.repos.d/mysql-community-source.repo', u'src': u'mysql-community-source.repo'}) 
skipping: [10.211.55.13] => (item={u'dest': u'/etc/yum.repos.d/mysql-community.repo', u'src': u'mysql-community.repo'}) 
ok: [10.211.55.7] => (item={u'dest': u'/etc/yum.repos.d/mysql-community-source.repo', u'src': u'mysql-community-source.repo'})
ok: [10.211.55.7] => (item={u'dest': u'/etc/yum.repos.d/mysql-community.repo', u'src': u'mysql-community.repo'})

TASK [mysql : Ubuntu配置MySQL Yum源] **************************************************************************************************************
skipping: [10.211.55.7]
ok: [10.211.55.13]

TASK [mysql : 安装MySQL-Server服务] ****************************************************************************************************************
skipping: [10.211.55.13]
ok: [10.211.55.7]

TASK [mysql : Ubuntu 安装MySQL-Server服务] *********************************************************************************************************
skipping: [10.211.55.7]
changed: [10.211.55.13]

RUNNING HANDLER [mysql : Start Mysql] **********************************************************************************************************
fatal: [10.211.55.13]: FAILED! => {"changed": false, "msg": "Unsupported parameters for (systemd) module: enable Supported parameters include: daemon_reexec, daemon_reload, enabled, force, masked, name, no_block, scope, state, user"}

PLAY RECAP *************************************************************************************************************************************
10.211.55.13               : ok=3    changed=1    unreachable=0    failed=1    skipped=3    rescued=0    ignored=0   
10.211.55.7                : ok=3    changed=0    unreachable=0    failed=0    skipped=3    rescued=0    ignored=0   

[root@ansible roles]# ansible-playbook roles.yaml

PLAY [linuxserver] *****************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [10.211.55.13]
ok: [10.211.55.7]

TASK [mysql : 安装MySQL Yum源] ********************************************************************************************************************
skipping: [10.211.55.7]
skipping: [10.211.55.13]

TASK [mysql : CenOS配置MySQL YUM源] ***************************************************************************************************************
skipping: [10.211.55.13] => (item={u'dest': u'/etc/yum.repos.d/mysql-community-source.repo', u'src': u'mysql-community-source.repo'}) 
skipping: [10.211.55.13] => (item={u'dest': u'/etc/yum.repos.d/mysql-community.repo', u'src': u'mysql-community.repo'}) 
ok: [10.211.55.7] => (item={u'dest': u'/etc/yum.repos.d/mysql-community-source.repo', u'src': u'mysql-community-source.repo'})
ok: [10.211.55.7] => (item={u'dest': u'/etc/yum.repos.d/mysql-community.repo', u'src': u'mysql-community.repo'})

TASK [mysql : Ubuntu配置MySQL Yum源] **************************************************************************************************************
skipping: [10.211.55.7]
ok: [10.211.55.13]

TASK [mysql : 安装MySQL-Server服务] ****************************************************************************************************************
skipping: [10.211.55.13]
ok: [10.211.55.7]

TASK [mysql : Ubuntu 安装MySQL-Server服务] *********************************************************************************************************
skipping: [10.211.55.7]
changed: [10.211.55.13]

RUNNING HANDLER [mysql : Start Mysql] **********************************************************************************************************
fatal: [10.211.55.13]: FAILED! => {"changed": false, "msg": "Could not find the requested service mysqld: host"}

# Ubuntu 系统中Mysql服务名为:mysql

PLAY RECAP *************************************************************************************************************************************
10.211.55.13               : ok=3    changed=1    unreachable=0    failed=1    skipped=3    rescued=0    ignored=0   
10.211.55.7                : ok=3    changed=0    unreachable=0    failed=0    skipped=3    rescued=0    ignored=0   

你可能感兴趣的:(Linux,自动化运维,centos,ubuntu,mysql)