3.4 实例 playbook安装mysql

1.创建mysql的playbook结构

1
2
3
4
5
6
7
8
9
10
11
[[email protected] roles]# pwd
/etc/ansible/roles
[[email protected] roles]# mkdir -p mysql_install/{files,handlers,meta,tasks,templates,vars}
[[email protected] roles]# tree mysql_install/
mysql_install/
├── files
├── handlers
├── meta
├── tasks
├── templates
└── vars

2.创建需要用到的vars

1
2
[[email protected] roles]# cat /etc/ansible/roles/mysql_install/vars/main.yml
mysql_version: mysql-5.5.37

3.创建远程安装脚本

 1 [[email protected] roles]# cat /etc/ansible/roles/mysql_install/templates/mysql_install.sh
 2 #!/bin/bash
 3
 4 DATADIR=‘/data/mysql/data‘
 5 VERSION=‘{{mysql_version}}‘
 6 export LANG=zh_CN.UTF-8
 7
 8 #Source function library.
 9 . /etc/init.d/functions
10
11 #camke install mysql5.5.X
12 install_mysql(){
13         #read -p "please input a password for root: " PASSWD
14     PASSWD=‘ly36843‘
15         if [ ! -d $DATADIR ];then
16                 mkdir -p $DATADIR
17         fi
18         yum install cmake make gcc-c++ bison-devel ncurses-devel -y
19         id mysql &>/dev/null
20         if [ $? -ne 0 ];then
21                 useradd mysql -s /sbin/nologin -M
22         fi
23         #useradd mysql -s /sbin/nologin -M
24         #change datadir owner to mysql
25         chown -R mysql.mysql $DATADIR
26         cd
27         #wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.38.tar.gz
28         tar xf $VERSION.tar.gz
29         cd $VERSION
30         cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/$VERSION 31         -DMYSQL_DATADIR=$DATADIR 32         -DMYSQL_UNIX_ADDR=$DATADIR/mysql.sock 33         -DDEFAULT_CHARSET=utf8 34         -DDEFAULT_COLLATION=utf8_general_ci 35         -DENABLED_LOCAL_INFILE=ON 36         -DWITH_INNOBASE_STORAGE_ENGINE=1 37         -DWITH_FEDERATED_STORAGE_ENGINE=1 38         -DWITH_BLACKHOLE_STORAGE_ENGINE=1 39         -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 40         -DWITHOUT_PARTITION_STORAGE_ENGINE=1
41         make && make install
42         if [ $? -ne 0 ];then
43                 action "install mysql is failed!"  /bin/false
44                 exit $?
45         fi
46         sleep 2
47         #link
48         ln -s /usr/local/$VERSION/ /usr/local/mysql
49         ln -s /usr/local/mysql/bin/* /usr/bin/
50         #copy config and start file
51         /bin/cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf
52         cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
53         chmod 700 /etc/init.d/mysqld
54         #init mysql
55         /usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql --datadir=$DATADIR --user=mysql
56         if [ $? -ne 0 ];then
57                 action "install mysql is failed!"  /bin/false
58                 exit $?
59         fi
60         #check mysql
61         /etc/init.d/mysqld start
62         if [ $? -ne 0 ];then
63                 action "mysql start is failed!"  /bin/false
64                 exit $?
65         fi
66         chkconfig --add mysqld
67         chkconfig mysqld on
68         /usr/local/mysql/bin/mysql -e "update mysql.user set password=password(‘$PASSWD‘) where host=‘localhost‘ and user=‘root‘;"
69         /usr/local/mysql/bin/mysql -e "update mysql.user set password=password(‘$PASSWD‘) where host=‘127.0.0.1‘ and user=‘root‘;"
70         /usr/local/mysql/bin/mysql -e "delete from mysql.user where password=‘‘;"
71         /usr/local/mysql/bin/mysql -e "flush privileges;"
72         #/usr/local/mysql/bin/mysql -e "select version();" >/dev/null 2>&1
73         if [ $? -eq 0 ];then
74                 echo "+---------------------------+"
75                 echo "+------mysql安装完成--------+"
76                 echo "+---------------------------+"
77         fi
78         #/etc/init.d/mysqld stop
79 }
80
81 install_mysql

4.创建任务
复制文件

1
2
3
4
5
[[email protected] roles]# cat /etc/ansible/roles/mysql_install/tasks/copy.yml 
- name: copy mysql source code to client
  copy: src={{mysql_version}}.tar.gz dest=/root/{{mysql_version}}.tar.gz owner=root group=root
- name: copy mysql install script to client
  template: src=mysql_install.sh dest=/root/mysql_install.sh owner=root group=root mode=0755

解压安装

1
2
3
[[email protected] roles]# cat /etc/ansible/roles/mysql_install/tasks/install.yml
- name: install mysql
  shell: /bin/sh /root/mysql_install.sh

创建包含文件

1
2
3
[[email protected] roles]# cat /etc/ansible/roles/mysql_install/tasks/main.yml
- include: copy.yml
- include: install.yml

最后的playbook结构是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[[email protected] roles]# tree /etc/ansible/roles/mysql_install/
/etc/ansible/roles/mysql_install/
├── files
│   └── mysql-5.5.37.tar.gz
├── handlers
├── meta
├── tasks
│   ├── copy.yml
│   ├── install.yml
│   └── main.yml
├── templates
│   └── mysql_install.sh
└── vars
    └── main.yml

5.创建mysql的playbook配置文件

1
2
3
4
5
6
[[email protected] ~]# cat /etc/ansible/mysql_server_install.yml
- hosts: mysql
  remote_user: root
  gather_facts: False
  roles:
    - mysql_install

来自为知笔记(Wiz)

时间: 2024-12-13 02:47:06

3.4 实例 playbook安装mysql的相关文章

运维自动化之ansible playbook安装mysql

上次介绍了如何使用ansible playbook安装zabbix客户端(http://dl528888.blog.51cto.com/2382721/1436745),这次介绍一下如何使用playbook安装mysql. 下面是安装mysql的信息: mysql_basedir: /data/mysql/basedir                    源码目录 mysql_datadir: /data/mysql/datadir                    数据目录 mysql

运维自动化之ansible playbook安装mysql tpcc测试OLTP能力

上周介绍了zabbix监控cdn带宽,这次在介绍一下ansible结合docker来一键化安装与测试mysql tpcc,然后通过tpcc测试OLTP系统性能. 写这个的原因就是重复性的安装太麻烦,浪费时间,而且我这里新业务不断上线,上线前使用tpcc进行OLTP测试对整体系统性能上也有了解. 一.Myql Tpcc介绍(网上找的内容) Tpcc-mysql是percona基于tpcc衍生出来的产品,用来测试OLTP(在线事务处理)系统性能的软件, TPCC-MYSQL是开源的TPC-C测试软件

CentOS 6.5最小化编译安装mysql 5.5.35配置多实例

1.关闭防火墙 [[email protected] ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter          [  OK  ] iptables: Flushing firewall rules:                         [  OK  ] iptables: Unloading modules:                               [ 

MYSQL数据库多实例的安装配置mysql_multi启停实战

一.多实例的应用场景: 1.资金紧张型公司的选择 当公司业务访问量不太大,又舍不得花钱,但同时又希望不同业务的数据库服务各自独立,而且需要主从同步进行等技术提供备份或读写分离服务时,使用多实例是最好不过的. 2.并发访问不是特别大的业务 当公司业务访问量不太大,服务器资源基本闲置的比较多,这是就很适合多实例的应用.如果对SQL语句优化的好,多实例是一个很值得使用的技术.即使并发很大,只要合理分配好系统资源,也不会有太大问题. 二.mysql多实例的原理 mysql多实例,简单的说,就是在一台服务

MySQL多实例的安装

安装MySQL-5.5.49 安装包的获取:http://mirrors.sohu.com/mysql/ # 安装MySQL需要的依赖包 yum install ncurses-devel libaio-devel -y rpm -qa  ncurses-devel libaio-devel # 安装编译MySQL需要的软件 yum install cmake -y rpm -qa cmake # 创建用户 useradd mysql -u 777 -s /sbin/nologin -M id 

编译安装MySQL搭建多实例

上一篇博客介绍的是:通过 MySQL二进制包搭建多实例服务http://aby028.blog.51cto.com/5371905/1891423 现在介绍通过编译安装MySQL搭建多实例 实验中所用到的软件包:http://down.51cto.com/data/2281098 环境介绍 编译安装mysql前需要解决依赖包问题 yum -y install ncurses-devel libaio-devel 安装 lrzsz 这个软件,和系统无关的一个软件.安装后可以通过xshell拖拽软件

Amazon EC2安装mysql多实例并配置主从复制

1.MySQL安装: EC2直接使用yum安装mysql非常方便: yum install mysql mysql-server mysql-libs 此处安装了三个包 完事之后能够直接使用 service mysqld start 启动mysql服务 改动root密码: mysqladmin -u root -p password "root" 2.使用mysqld_multi安装多实例mysql: vim /etc/my.cnf 加入实例的配置信息 [mysqld] datadir

yum && 编译 安装mysql 5.7 多实例

yum安装 [[email protected] ~]# wget http://repo.mysql.com/mysql57-community-release-el7.rpm [[email protected] ~]# rpm -ivh mysql57-community-release-el7.rpm [root@localhost ~]# yum install mysql mysql-server 初始化 [[email protected] ~]# grep "password&q

cmake安装mysql及多实例配置方法

一.安装mysql 1. 生产环境如何选择MySQL版本 1. 选择社区版的稳定GA版本2. 可以选择5.1或5.5.互联网公司主流5.5, 其次是5.1和5.63. 选择发布后6个月以上的GA版4. 要选择前后几个月没有打的BUG修复的版本,而不是大量修复BUG的几种版本5. 最好选择向后较长时间没有更新发布的版本6. 考虑开发人员开发程序使用的版本是否兼容你选的版本7. 企业非核心业务采用新版本的数据库GA版本软件8. 作为内部开发测试数据库环境,跑大概3-6个月时间9. 向DBA高手请教,