CentosでSaltstackソースコードでMysqlをインストール
5074 ワード
概要:
SaltStackはサーバインフラストラクチャの集中化管理プラットフォームであり、構成管理、リモート実行、モニタリングなどの機能を備えており、一般的に簡略化版のpuppetと強化版のfuncと理解できる.SaltStackはPython言語に基づいて実現され、軽量レベルのメッセージキュー(ZeroMQ)とPythonサードパーティモジュール(Pyzmq、PyCrypto、Pyjinjia 2、python-msgpack、PyYAMLなど)を組み合わせて構築される.
最近仕事が暇なのでsaltstackを勉强し続けて、今日はソースコードでMysqlデータベースをインストールして、saltstackを勉强するのはやはり多く実践して、くだらないことは多く言わないで、干物に行きます.
実験環境:
導入開始:
ディレクトリ構造:
初期化プロファイル:
mysqlプライマリプロファイルをインストールするには、次の手順に従います.
Mysql初期化スクリプト:
興奮してインストールを実行します
minionエンドの表示:
上からmysqlがminion側にインストールに成功したことがわかり、以前は各種のエラー、各種のデバッグがあった.やっと成功した.やはりその言葉だ,もっと手を出しなさい.
SaltStackはサーバインフラストラクチャの集中化管理プラットフォームであり、構成管理、リモート実行、モニタリングなどの機能を備えており、一般的に簡略化版のpuppetと強化版のfuncと理解できる.SaltStackはPython言語に基づいて実現され、軽量レベルのメッセージキュー(ZeroMQ)とPythonサードパーティモジュール(Pyzmq、PyCrypto、Pyjinjia 2、python-msgpack、PyYAMLなど)を組み合わせて構築される.
最近仕事が暇なのでsaltstackを勉强し続けて、今日はソースコードでMysqlデータベースをインストールして、saltstackを勉强するのはやはり多く実践して、くだらないことは多く言わないで、干物に行きます.
実験環境:
Master: www.master.com 10.0.4.52 Centos6.5
Slave: www.slave.com 10.0.4.53 Centos6.5
導入開始:
# cat top.sls
base:
'*':
- init.install
- mysql.install
ディレクトリ構造:
# tree init/
init/
└── install.sls # mysql 。
# tree mysql/ # 。
mysql/
├── init.sh
├── install.sls
├── my.cnf #mysql , 。
├── mysql-5.6.14.tar.gz
└── mysqld #mysql , /etc/init.d/mysqld。
0 directories, 5 files
初期化プロファイル:
# cat init/install.sls
pkg-init:
pkg.installed:
- names:
- gcc
- gcc-c++
- glibc
- make
- autoconf
- libjpeg-turbo
- libjpeg-turbo-devel
- libpng
- libpng-devel
- freetype
- freetype-devel
- libxml2
- libxml2-devel
- zlib
- zlib-devel
- libcurl
- libcurl-devel
- openssl
- openssl-devel
- swig
- cmake
- ncurses
- ncurses-devel
- libtool-ltdl-devel
mysqlプライマリプロファイルをインストールするには、次の手順に従います.
# cat mysql/install.sls
include:
- init.install
mysql-source-install:
file.managed:
- name: /usr/local/src/mysql-5.6.14.tar.gz
- source: salt://mysql/mysql-5.6.14.tar.gz
- user: root
- group: root
- mode: 755
cmd.run:
- name: cd /usr/local/src/ && tar xf mysql-5.6.14.tar.gz && cd mysql-5.6.14 && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql5.6/ -DMYSQL_DATADIR=/usr/local/webserver/mysql5.6/data -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci && make && make install
- require:
- file: mysql-source-install
- unless: test -d /usr/local/webserver/mysql5.6
mysql-init:
file.managed:
- name: /usr/local/src/init.sh
- source: salt://mysql/init.sh
- user: root
- group: root
- mode: 755
cmd.script:
- name: /usr/local/src/init.sh
- require:
- cmd: mysql-source-install
mysql-config:
file.managed:
- name: /usr/local/webserver/mysql5.6/my.cnf
- source: salt://mysql/my.cnf
- user: root
- group: root
- mode: 644
- require:
- file: mysql-init
mysql-service:
file.managed:
- name: /etc/init.d/mysqld
- source: salt://mysql/mysqld
- user: root
- group: root
- mode: 755
cmd.run:
- name: chkconfig --add mysqld
- unless: chkconfig --list |grep mysqld
- require:
- file: mysql-service
service.running:
- name: mysqld
- require:
- cmd: mysql-service
Mysql初期化スクリプト:
# cat mysql/init.sh
#!/bin/bash
groupadd mysql #saltstack mysql , 。
useradd -r -g mysql mysql
ln -s /usr/local/webserver/mysql5.6/bin/mysql /usr/bin/
cd /usr/local/webserver/mysql5.6/scripts/ && ./mysql_install_db --basedir=/usr/local/webserver/mysql5.6/ --datadir=/usr/local/webserver/mysql5.6/data/
rm -rf /etc/my.cnf
cp -a /usr/local/webserver/mysql5.6/support-files/my-default.cnf /usr/local/webserver/mysql5.6/my.cnf
chown mysql:mysql /usr/local/webserver/mysql5.6/ -R
興奮してインストールを実行します
#salt 'www.slave.com' state.highstate # salt 'www.slave.com' state.highstate test=True 。
..........................................................
----------
ID: mysql-service
Function: cmd.run
Name: chkconfig --add mysqld
Result: True
Comment: unless execution succeeded
Started: 11:01:55.890689
Duration: 519.892 ms
Changes:
----------
ID: mysql-service
Function: service.running
Name: mysqld
Result: True
Comment: Started Service mysqld
Started: 11:01:56.414994
Duration: 2598.256 ms
Changes:
----------
mysqld:
True
Summary
-------------
Succeeded: 32 (changed=5)
Failed: 0
-------------
Total states run: 32
minionエンドの表示:
# netstat -anlp |grep mysqld
tcp 0 0 :::3306 :::* LISTEN 29890/mysqld
unix 2 [ ACC ] STREAM LISTENING 897638 29890/mysqld /var/lib/mysql/mysql.sock
上からmysqlがminion側にインストールに成功したことがわかり、以前は各種のエラー、各種のデバッグがあった.やっと成功した.やはりその言葉だ,もっと手を出しなさい.