设为首页 收藏本站
查看: 2192|回复: 0

[经验分享] 通过saltstack源码安装mysql

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-12 08:56:21 | 显示全部楼层 |阅读模式
tree /srv/salt
/srv/salt
|-- mysql
|   |-- conf.sls
|   |-- files
|   |  |-- conf.sh
|   |  |-- my.cnf
|   |  |-- mysql-5.5.33.tar.gz
|   |  |-- mysqld
|   |  `-- mysqllns.sh
|   |-- init.sls
|   `-- install.sls
`-- top.sls

cat /srv/salt/top.sls
base:
  '*':
    - tree

  mysqldb:
    - match: nodegroup
    - mysql

cat /etc/salt/master |grep -v"^$" |grep -v "#"
auto_accept: True
file_roots:
  base:
    - /srv/salt
nodegroups:
  mysqldb: 'L@minion_server_name'

cat /srv/salt/mysql/init.sls
include:
  - mysql.install
  - mysql.conf

cat /srv/salt/mysql/init.sls
include:
  - mysql.install
  - mysql.conf


cat /srv/salt/mysql/install.sls
#install source mysql
mysql_source:
  file.managed:
    - name:/home/mysql-5.5.33.tar.gz
    - unless: test -e/home/mysql-5.5.33.tar.gz
    - source:salt://mysql/files/mysql-5.5.33.tar.gz
#tar source mysql
extract_mysql:
  cmd.run:
    - cwd: /home
    - names:
        - tar xfmysql-5.5.33.tar.gz
        - chown root:root/home/mysql-5.5.33 -R
    - unless: test -d/home/mysql-5.5.33
    - require:
        - file: mysql_source
#useradd for mysql
mysql_user:
  user.present:
    - name: mysql
    - uid: 1024
    - createhome: True
    - gid_from_name: True
    - shell: /sbin/nologin
#mysql pkg.install
mysql_pkg:
  pkg.installed:
    - pkgs:
      - gcc
      - gcc-c++
      - autoconf
      - automake
      - openssl
      - openssl-devel
      - zlib
      - zlib-devel
      - ncurses-devel
      - libtool-ltdl-devel
      - cmake
#mysql source install
mysql_commpile:
  cmd.run:
    - cwd: /home/mysql-5.5.33
    - names:
        - cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATTON=utf8_cuicode_ci  -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1  -DENABLED_LOCAL_INFILE=1-DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_DEBUG=0
        - make
        - make install
    - require:
        - cmd: extract_mysql
        - pkg: mysql_pkg
    - unless: test -d/usr/local/mysql

cat /srv/salt/mysql/conf.sls
#include:
#  - mysql.install
# mysql for config
mysql_cnf:
  file.managed:
    - name: /etc/my.cnf
    - user: root
    - mode: 755
    - source:salt://mysql/files/my.cnf
# mysql init
salt://mysql/files/conf.sh:
  cmd.script:
      - env:
          - BATCH: 'yes'
      - require:
          - cmd: mysql_commpile
          - pkg: mysql_pkg
salt://mysql/files/mysqllns.sh:
  cmd.script:
      - env:
          - BATCH: 'yes'
      - require:
          - cmd: mysql_commpile
          - pkg: mysql_pkg
# mysql server
mysql_service:
   file.managed:
     - name: /etc/init.d/mysqld
     - user: root
     - mode: 755
     - source: salt://mysql/files/mysqld
   cmd.run:
     - names:
         - /sbin/chkconfig --addmysqld
         - /sbin/chkconfig --level235 mysqld on
     - unless: /sbin/chkconfig--list mysqld
   service.running:
     - name: mysqld
     - enable: True
     - reload: True

cat/srv/salt/mysql/files/conf.sh
#!/bin/bash
/usr/local/mysql/scripts/mysql_install_db --user=mysql--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

cat/srv/salt/mysql/files/mysqllns.sh
#!/bin/bash
#lns
ln -sv /usr/local/mysql/bin/mysql /usr/bin
ln -sv /usr/local/mysql/bin/mysqladmin /usr/bin/
ln -sv /usr/local/mysql/bin/mysqldump /usr/bin/
ln -sv /var/lib/mysql/mysql.sock /tmp/mysql.sock
#mysq competence
/bin/chown -R mysql.mysql /usr/local/mysql/ && /bin/chown -Rmysql.mysql /usr/local/mysql/data/

另外3个文件,
my.cnf是配置文件,参考标准的
mysql-5.5.33.tar.gz是源文件
mysqld是服务脚本文件,参考标准的。

最后在salt-master执行命令,可在minion完成自动安装mysql,耗时10分钟左右;如中间有错误,修改后再次执行,原先执行过的没变的步骤不会再执行。
salt -N 'mysqldb'state.highstate


源码安装是最麻烦的,如果通过yum安装会更加简单。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-97705-1-1.html 上篇帖子: saltstack的深入-再次理解state的基本用法 下篇帖子: saltstack安装 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表