天天看点

saltstack全编译安装mysql5.6.22

环境:

salt-master:centos7.8

salt-minion(2台):centos6.10

salt-minion(1台):centos7.8

关闭selinux和firewalld,iptables开放4505和4506端口           

目的:通过salt-master实现对salt-minion的批量自动安装mysql

步骤(都在master执行):

1,检测连通性

salt '*' test.ping

2,下载mysql的源码包至/srv/salt/mysql/files/

/srv/salt/mysql/files/mysql-5.6.22.tar.gz

3,编辑安装文件:/srv/salt/mysql/

[20:33:20-root@jack mysql]#tree -L 1

.

├── cmake.sls

├── conf

├── files

└── mysql.sls

主要cmake.sls和mysql.sls文件

cmake.sls安装编译软件包

mysql.sls编译安装mysql

[20:33:29-root@jack mysql]#cat cmake.sls

cmake-install:

pkg.installed:

  • pkgs:
    • cmake
    • gcc-c++
    • ncurses-devel
    • git
    • perl-devel

      [20:35:17-root@jack mysql]#cat mysql.sls

      mysql-install:

      file.managed:

  • name: /mnt/mysql-5.6.22.tar.gz
  • source: salt://mysql/files/mysql-5.6.22.tar.gz

    cmd.run:

  • name: cd /mnt/ && tar xzvf mysql-5.6.22.tar.gz && cd mysql-5.6.22 && groupadd mysql && mkdir -pv /data/mysql && useradd -r -g mysql -d /data/mysql -s /sbin/nologgin mysql && chown -R mysql.mysql /data/mysql && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DWITH_EXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DDEFAULT_COLLATION=utf8_general_ci && make && make install && chmod -R 755 /usr/local/mysql && cd /usr/local/mysql && ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
  • creates: /usr/local/mysql

    #####:一定要注意语法格式和缩进

    4,执行安装

    [20:40:06-root@jack mysql]#salt '*' state.sls mysql.cmake

    [20:41:01-root@jack mysql]#salt '*' state.sls mysql.mysql
    
     执行时间会很长,如果语法或者没有依赖包,会报错,飘红的           

5,更改配置,亦可以在本地改好,直接用cp.get_file/cp.get_dir,批量发送

由于配置简单,这边直接更改了:

[20:41:01-root@jack mysql]#cat conf

salt '' cmd.run "cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf"

salt '' cmd.run "sed -i '/mysqld/a\datadir = /data/mysql' /etc/my.cnf"

salt '' cmd.run "sed -i '/datadir=/s#\/var\/lib\/mysql#\/data\/mysql#g' /etc/my.cnf"

salt '' cmd.run "cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld"

salt '' cmd.run "chmod 755 /etc/init.d/mysqld;chkconfig --add mysqld;chkconfig mysqld on"

salt '' cmd.run "echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile.d/mysqld.sh"

salt '*' cmd.run "/etc/init.d/mysqld restart"

继续阅读