Centos7 下 Ansible-playbook 二进制安装Mariadb10.2.23
一 ,角色目录结构
ansible 目录结构如下:
1 . 2 ├── roles 3 │ └── mariadb 4 │ ├── files 5 │ │ ├── mariadb-10.2.23-linux-x86_64.tar.gz 6 │ │ └── mysql.sh 7 │ ├── handlers 8 │ ├── tasks 9 │ │ └── main.yml 10 │ └── vars 11 │ └── main.yml 12 └── site.yml 13 14 6 directories, 5 files
其中:
mariadb-10.2.23-linux-x86_64.tar.gz 为mariadb的二进制文件。
mysql.sh 为 开机加载数据库PATH,路径为/etc/profile.d/mysql.sh,内容为 PATH=/usr/local/mysql/bin:$PATH
vars下变量并没有使用,后期可扩展。
二 ,tasks内容
1 --- 2 - name: 1- addgroup mysql 3 group: 4 name: mysql 5 gid: 336 6 system: yes 7 state: present 8 9 - name: 2-adduser mysql 10 user: 11 name: mysql 12 uid: 336 13 group: mysql 14 shell: /sbin/nologin 15 home: /data/mysql 16 system: yes 17 18 - name: 3-ungiz mariadb to remote 19 unarchive: 20 src: mariadb-10.2.23-linux-x86_64.tar.gz 21 dest: /usr/local 22 owner: root 23 group: root 24 25 - name: 4-soft link for mariadb-10.2.23-linux-x86_64 26 file: 27 src: /usr/local/mariadb-10.2.23-linux-x86_64/ 28 dest: /usr/local/mysql 29 owner: root 30 group: root 31 state: link 32 33 - name: 5-copy file to /etc/profile.d/mysql.sh 34 copy: 35 src: mysql.sh 36 dest: /etc/profile.d/ 37 38 - name: 6-create datadir 39 file: 40 path: /data/mysql 41 state: directory 42 owner: mysql 43 group: mysql 44 45 - name: 7-init data file 46 shell: /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysql --user=mysql 47 48 - name: 8- makdir /etc/mysql 49 file: 50 path: /etc/mysql 51 state: directory 52 53 - name: 9-prepare /etc/mysql/my.cnf 54 copy: 55 remote_src: yes 56 src: /usr/local/mysql/support-files/my-huge.cnf 57 dest: /etc/mysql/my.cnf 58 59 - name: 10-define datadir in /etc/mysql/my.cnf 60 shell: sed -i '/\[mysqld\]/a datadir=/data/mysql' /etc/mysql/my.cnf 61 - name: 11-create /etc/init.d/mysqld 62 copy: 63 remote_src: yes 64 src: /usr/local/mysql/support-files/mysql.server 65 dest: /etc/init.d/mysqld 66 mode: 0744 67 68 - name: 12-to be the system service 69 shell: | 70 chkconfig --add mysqld 71 service mysqld start
1 #### site.yml 内容 2 --- 3 - hosts: test7 4 remote_user: root 5 roles: 6 - mariadb
以上步骤走完,需要使用 mysql_secure_installation 处理,自动应答据说可使用重定向处理,我使用文本和<<EOF 没有成功,有会的吗,请教下。
三,yum 安装高版本mariadb
在centos 6 安装时有报错,提示"libc.so.6: version `GLIBC_2.14' not found",系统的glibc版本太低,
strings /lib64/libc.so.6 | grep GLIBC 查看当前glibc版本号
rpm -qa | grep glibc
可以到此网站 http://ftp.redsleeve.org/pub/steam/ 搜索 rpm 包 ,因为一般找不到rpm包,除非自己编译高版本(我并没有)。
后来将mariadb的镜像源添加后,阿里云的源不禁止,可以正常解决依赖问题。自己编译了几次,不成功,使用以上两种方法解决。
1 --- 2 - hosts: all 3 remote_user: root 4 tasks: 5 - name: config mariadb10 yum-repository for 7 6 yum_repository: 7 name: mariadb-10 8 description: Mariadb10.3.14 9 baseurl: https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.3.14/yum/centos7-amd64/ 10 gpgcheck: no 11 when: ansible_distribution_major_version == "7" 12 13 - name: config maraidb10 yum-repository for 6 14 yum_repository: 15 name: mariadb-10.3 16 description: Mariadb-10.3.14 17 baseurl: https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.3.14/yum/centos6-amd64/ 18 gpgcheck: no 19 when: ansible_distribution_major_version == "6" 20 21 - name: configure yumrepo from aliyun 22 yum_repository: 23 name: aliyun 24 description: aliyun repo 25 gpgcheck: no 26 baseurl: https://mirrors.aliyun.com/centos/$releasever/os/$basearch/ 27 - name: yum clean all vs makecache 28 shell: yum clean all && yum makecache 29 30 - name: install mariadb-server & mariadb-client 31 yum: 32 name: "{{packages}}" 33 vars: 34 packages: 35 - MariaDB-server 36 - MariaDB-client 37 state: present
4-27,坚持。

浙公网安备 33010602011771号