Loading

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,坚持。

posted @ 2019-04-27 17:43  Lust4Life  阅读(555)  评论(0)    收藏  举报