Saltstack安装LAMP
来源:互联网 发布:淘宝美食店铺吐血推荐 编辑:程序博客网 时间:2024/06/06 07:09
自动化运维工具Saltstack
Saltstack是一个新的基础设施管理工具。saltstack的两大功能:远程执行和配置管理。
Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具。由Master和Minion构成,通过ZeroMQ进行通信。
Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口;salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端控制,如果连接断开,master对客户端就无能为力了。
安装
官方文档 : http://docs.saltstack.cn/topics/installation/rhel.html
测试环境
master 主机:server1 IP:172.25.21.1
minion 主机:server2 IP:172.25.21.2
master端
配置yum源
vim /etc/yum.repos.d/salt.repo [salt-latest]name=SaltStack Latest Release Channel for RHEL/Centos $releaseverbaseurl=https://repo.saltstack.com/yum/redhat/6.5/x86_64/2016.11/enabled=1gpgchec=0
yum clean allyum repolistyum install -y salt-master #安装master端程序
scp /etc/yum.repos.d/salt.repo server2:/etc/yum.repos.d/ #发送yum源到server2
minion端
yum clean allyum repolistyum install -y salt-minion #安装minion端程序
安装过程中的报错
1.
Error: Package: yum-utils-1.1.30-30.el6.noarch (saltstack-repo) Requires: yum >= 3.2.29-56 Installed: yum-3.2.29-40.el6.noarch (@anaconda-RedHatEnterpriseLinux-201311111358.x86_64/6.5) yum = 3.2.29-40.el6 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
提示yum版本过低,下载大于3.2.29-56版本的yum即可
yum install -y yum-3.2.29-69.el6.centos.noarch.rpm
2.
Downloading Packages:warning: rpmts_HdrFromFdno: Header V4 RSA/SHA1 Signature, key ID de57bfbe: NOKEYPublic key for python-futures-3.0.3-1.el6.noarch.rpm is not installed
安装minion时的报错
执行时加上”–nogpgcheck”参数
yum install salt-minion -y --nogpgcheck
配置
minion端更改配置文件
vim /etc/salt/minionmaster: server1 #需要解析,在/etc/hosts中添加
master端
/etc/init.d/salt-master start #启动
minion端
/etc/init.d/salt-minion start #启动netstat -antlp #查看端口Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 894/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 970/master tcp 0 0 172.25.21.2:22 172.25.21.250:59317 ESTABLISHED 1359/sshd tcp 0 0 172.25.21.2:45653 172.25.21.1:4506 ESTABLISHED 2102/python2.6 tcp 0 0 :::22 :::* LISTEN 894/sshd tcp 0 0 ::1:25 :::* LISTEN 970/master
master端
[root@server1 ~]# salt-key -LAccepted Keys:Denied Keys:Unaccepted Keys:server2Rejected Keys:[root@server1 ~]# salt-key -AThe following keys are going to be accepted:Unaccepted Keys:server2Proceed? [n/Y] yKey for minion server2 accepted.[root@server1 ~]# salt-key -LAccepted Keys:server2Denied Keys:Unaccepted Keys:Rejected Keys:
minion端
netstat -antlp #查看端口Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 894/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 970/master tcp 0 0 172.25.21.2:57201 172.25.21.1:4505 ESTABLISHED 2102/python2.6 tcp 0 0 172.25.21.2:22 172.25.21.250:59317 ESTABLISHED 1359/sshd tcp 0 0 :::22 :::* LISTEN 894/sshd tcp 0 0 ::1:25 :::* LISTEN 970/master
SaltStack自动部署LAMP
安装apache
master端
vim /etc/salt/master 更改配置文件file_roots: base: - /srv/salt
mkdir /srv/salt #创建目录cd /srv/salt mkdir apachecd apache/mkdir filescd files/wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.bz2 #下载apache源码包
在/srv/salt/apache下创建脚本
vim install.sls #配置安装脚本include: - pkg.depends - useradd.wwwapache-install: file.managed: - name: /mnt/httpd-2.2.34.tar.bz2 - source: salt://apache/files/httpd-2.2.34.tar.bz2 cmd.run: - name: cd /mnt && tar jxf httpd-2.2.34.tar.bz2 && cd httpd-2.2.34 && ./configure --prefix=/usr/local/apache --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support --disable-userdir && make && make install - creates: /usr/local/apache/usr/local/apache/conf/httpd.conf: file.managed: - source: salt://apache/files/httpd.conf/etc/init.d/httpd: file.managed: - source: salt://apache/files/httpd - mode: 755
vim start.sls #配置启动脚本include: - apache.installapache-start: service.running: - name: apachectl - enable: true - reload: true - watch: - file: /usr/local/apache/conf/httpd.conf - file: /var/www/virthost/index.html
在/srv/salt/pkg下配置安装依赖包脚本
vim install.slsinstall: pkg.installed: - pkgs: - gcc - pcre-devel - openssl-devel - zlib-devel
在/srv/salt/useradd下配置添加用户脚本
www: group.present: - gid: 800 user.present: - uid: 800 - gid: 800 - shell: /sbin/nologin - home: /usr/local/apache - createhome: false
在/srv/salt/下添加top.sls脚本
vim top.slsbase: 'server2': - apache.start
salt 'server2' state.highstate #安装top中的内容,当前为安装apache
files下的文件
httpd #启动脚本
httpd.conf #配置文件
httpd-2.2.34.tar.bz2 #源码包
启动脚本为源码包解压后httpd-2.2.34/build/rpm/httpd.init
其中启动脚本下面需要修改
httpd=${HTTPD-/usr/sbin/httpd}pidfile=${PIDFILE-/var/log/httpd/${prog}.pid}lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
修改为
httpd=${HTTPD-/usr/local/apache/bin/httpd}pidfile=${PIDFILE-/usr/local/apache/logs/${prog}.pid}lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
mysql安装
在/srv/salt/useradd下添加创建用户脚本
vim mysql.slsmysql: group.present: - gid: 900 user.present: - uid: 900 - gid: 900 - shell: /sbin/nologin - home: /usr/local/mysql - createhome: false
在/srv/salt/pkg下添加安装mysql依赖包脚本
vim mysql.sls #安装mysql依赖包depends-mysql: pkg.installe: - pkgs: - gcc-c++ - pcre-devel - openssl-devel - zlib-devel - ncurses - ncurses-devel - bison
在/srv/salt/mysql下创建脚本
mkdir /srv/salt/mysqlcd /srv/salt/mysql
vim install.sls #安装mysql脚本include: - pkg.mysql - useradd.mysqlcmake-install: file.managed: - name: /mnt/cmake-2.8.12.2-4.el6.x86_64.rpm - source: salt://mysql/files/cmake-2.8.12.2-4.el6.x86_64.rpm cmd.run: - name: cd /mnt && yum install -y cmake-2.8.12.2-4.el6.x86_64.rpmmysql-install: file.managed: - name: /mnt/mysql-boost-5.7.17.tar.gz - source: salt://mysql/files/mysql-boost-5.7.17.tar.gz cmd.run: - name: cd /mnt && tar -zxf mysql-boost-5.7.17.tar.gz && cd mysql-5.7.17 && cp -r boost/boost_1_59_0 /usr/local && rm -rf CMakeCache.txt && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=/usr/local/boost_1_59_0/ -DSYSCONFDIR=/etc -DEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all && make && make install - creates: /usr/local/mysql
创建初始化脚本
vim initialize.slsinclude: - mysql.installmysql-initialize: cmd.run: - name: chown -R mysql:mysql /usr/local/mysql && sed -i.bak '\/datadir=\/var\/lib\/mysql/i\character_set_server=gbk' /etc/my.cnf && sed -i.bak 'N;2idefault-character-set=gbk' /etc/my.cnf && sed -i.bak 'N;2i[client]' /etc/my.cnf && cd /usr/local/mysql/&& sed -i.bak 's/socket=\/var\/lib\/mysql\/mysql.sock/socket=\/tmp\/mysql.sock/g' /etc/my.cnf && ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data && cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql && chkconfig --add mysqld - creates: /usr/local/mysql/data/mysql
创建启动脚本
vim start.sls include: - mysql.initializemysql-start: service.running: - name: mysqld - enable: True - reload: true - require: - file: /etc/init.d/mysqld - watch: - file: /etc/my.cnf
files下的文件
下载mysql-boost-5.7.17.tar.gz 和 cmake-2.8.12.2-4.el6.x86_64.rpm到/srv/saltmysql/files/目录下
更改top.sls
vim top.slsbase: 'server2': - apache.start - mysql.start
安装php
创建php安装依赖包脚本
vim pkg/php.slsdepends-php: pkg.installed: - pkgs: - gcc - pcre-devel - openssl-devel - zlib-devel - libxml2-devel.x86_64 - openssl-devel.x86_64 - bzip2-devel.x86_64 - t1lib.x86_64 - libjpeg-turbo-devel.x86_64 - libpng-devel.x86_64 - freetype-devel.x86_64
在/srv/salt/php下创建脚本
mkdir /srv/salt/phpcd /srv/salt/php
vim install.sls #安装脚本libmcrypt_pkg: file.managed: - name: /mnt/libmcrypt-2.5.7-5.el6.art.x86_64.rpm - source: salt://php/files/libmcrypt-2.5.7-5.el6.art.x86_64.rpmlibmcrypt-devel_pkg: file.managed: - name: /mnt/libmcrypt-devel-2.5.7-5.el6.art.x86_64.rpm - source: salt://php/files/libmcrypt-devel-2.5.7-5.el6.art.x86_64.rpminclude: - pkg.phpphp-install: file.managed: - name: /mnt/php-5.6.31.tar.bz2 - source: salt://php/files/php-5.6.31.tar.bz2 cmd.run: - name: cd /mnt && yum install -y libmcrypt-* && tar xjf php-5.6.31.tar.bz2 && cd php-5.6.31 && ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-sockets --enable-exif --disable-ipv6 && make -j2 && make install - creates: /usr/local/php/usr/local/php/etc: file.directory: - mode: 755/usr/local/php/etc/php.ini: file.managed: - source: salt://php/files/php.ini
files下的文件
php-5.6.31.tar.bz2libmcrypt-2.5.7-5.el6.art.x86_64.rpmlibmcrypt-devel-2.5.7-5.el6.art.x86_64.rpmphp.ini #配置文件
更改top.sls
vim top.slsbase: 'server2': - apache.start - mysql.start - php.install
salt 'server2' state.highstate #自动化安装
可以完整地推送到一台minion机器上
- Saltstack安装LAMP
- saltstack部署lamp
- SaltStack安装
- saltstack安装
- Saltstack安装
- saltstack安装
- saltstack 安装
- SaltStack安装
- saltstack安装
- saltstack安装
- saltstack 实现lamp批量部署
- SaltStack实战之配置管理-LAMP自动化部署
- saltstack之路--saltstack 安装(1)
- CentOS6/7 使用saltstack源安装saltstack
- SaltStack的非标准安装
- 安装和配置saltstack
- saltstack快速安装
- saltstack快速安装
- NOIP 2002 均分纸牌
- Filter过滤器
- 《大话设计模式》读书笔记之C++实现--chapter22桥接模式
- Gym 101389. B
- 关于Switch控件的使用
- Saltstack安装LAMP
- codeforces 870C. Maximum splitting
- [NOIP2017模拟]玩积木
- 学习uboot前奏之hardware-IRQ[s3c2440]
- 流程控制语句
- Learning Python Part III 之 模块
- 快速使用ConstraintLayout
- CCD/CMOS靶面尺寸型号标准
- CenOS 7 安装 MySQL 5.7