saltstack自动化运维系列12配置管理安装redis-3.2.8
来源:互联网 发布:av淘宝在线视频 编辑:程序博客网 时间:2024/05/17 22:57
一、准备redis自动化配置的文件(即安装一遍redis,然后获取相关文件和配置在salt中执行上线)
1.源码安装redis3.2.8并注册为系统服务
安装依赖
yum install -y tcl
1、下载安装包redis-3.2.8.tar.gz
# cd /usr/local/src# wget http://download.redis.io/releases/redis-3.2.8.tar.gz
2、解压及安装
[root@node2 src]# tar zxf redis-3.2.8.tar.gz[root@node2 src]# cd redis-3.2.8/src/[root@node2 redis-3.2.8]# make PREFIX=/usr/local/redis install #指定安装路径
3、创建配置文档,修改配置
创建配置文档路径
# mkdir /etc/redis[root@node2 src]# cp ../redis.conf /etc/redis/redis_6350.conf
以下几个参数常用到
daemonize yes # 后台运行bind 127.0.0.1 # 绑定ip,需要外网访问时将其注释掉protected-mode yes # 保护模式,默认是开启的,需要其他客户端链接时,改为no关闭requirepass redispass # 其他客户端链接时的密码appendonly yes # 每次更新后记录日志pidfile /var/run/redis_6350.pid # 如果不是默认的6379端口需要修改该行
4、注册系统服务,开机自启
创建启动脚本
# cp ../utils/redis_init_script /etc/rc.d/init.d/redis3
修改redis启动脚本,要修改的地方有
添加 chkconfig 注释redis-server 、redis-cli 、pidfile、redis.conf路径如果需要配置密码,还要在停止命令增加参数 -a 指定密码
[root@node2 src]# cat /etc/init.d/redis3 #!/bin/sh# chkconfig: 2345 90 10# Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.REDISPORT=6350EXEC=/usr/local/redis/bin/redis-serverCLIEXEC=/usr/local/redis/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/redis_${REDISPORT}.conf"usage(){ echo "usage: $0 [start|stop|status|restart]"}redis_start(){if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONFfi}redis_stop(){ if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT -a redispass shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi}redis_restart(){ redis_stop sleep 1 redis_start}redis_status(){ ps -ef|grep redis|grep -v grep|grep -v status}main(){ case "$1" in start) redis_start;; stop) redis_stop;; status) redis_status;; restart) redis_restart;; *) usage; esac}main $1
保存后执行注册成系统服务:
chkconfig --add redis3
chkconfig redis3 on
完成后,可以使用 service redis3 start|stop 启动关闭redis服务
5、添加环境变量:
vim /etc/profile
在最后添加:
PATH=$PATH:/usr/local/redis/binexport PATH
# 使配置生效
source /etc/profile
# service redis3 start[root@node2 src]# ps -ef|grep redisroot 20818 1 0 09:57 ? 00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6350root 20827 14125 0 09:58 pts/0 00:00:00 grep --color=auto redis
用redis-cli 链接,set,get正常
[root@node2 src]# redis-cli -p 6350 -a redispass127.0.0.1:6350> set name 2OK127.0.0.1:6350> get name"2"127.0.0.1:6350> set jack 18OK127.0.0.1:6350> get jack"18"127.0.0.1:6350> quit
二、salt相关的配置处理
# mkdir -p /srv/salt/prod/pkg /srv/salt/prod/redis /srv/salt/prod/redis/files # cd /srv/salt/prod/pkg
1.初始化nginx相关配置文件
①下载redis-3.2.8.tar.gz上传到/srv/salt/prod/redis/files目录
②配置文件
[root@test7_chat_api_im files]# grep '^[a-Z]' redis_6350.conf bind 127.0.0.1protected-mode yesport 6350tcp-backlog 511timeout 0tcp-keepalive 300daemonize yessupervised nopidfile /var/run/redis_6350.pidloglevel noticelogfile ""databases 16save 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir ./slave-serve-stale-data yesslave-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noslave-priority 100requirepass redispassappendonly yesappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hz 10aof-rewrite-incremental-fsync yes
③服务管理脚本
[root@test7_chat_api_im files]# cat redis3 #!/bin/sh# chkconfig: 2345 90 10# Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.REDISPORT=6350EXEC=/usr/local/redis/bin/redis-serverCLIEXEC=/usr/local/redis/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/redis_${REDISPORT}.conf"case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT -a redispass shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;;esac
2.编写依赖包安装
vim /srv/salt/prod/pkg/pkg-init.sls
pkg-init: pkg.installed: - names: - gcc - gcc-c++ - glibc - make - autoconf - openssl - openssl-devel - pcre - pcre-devel - glib - glib-devel - tcl
3.用户添加模块
# mkdir /srv/salt/prod/user# vim /srv/salt/prod/user/redis.sls redis-user-group: group.present: - name: redis - gid: 6350 user.present: - name: redis - fullname: redis - shell: /sbin/nologin - uid: 6350 - gid: 6350
4.编写nginx状态模块
# cd /srv/salt/prod/redisvim /srv/salt/prod/redis/install.slsinclude: - pkg.pkg-init - user.redisredis-source-install: file.managed: - name: /usr/local/src/redis-3.2.8.tar.gz - source: salt://redis/files/redis-3.2.8.tar.gz - user: root - group: root - mode: 755 cmd.run: - name: cd /usr/local/src && tar zxf redis-3.2.8.tar.gz && cd cd redis-3.2.8/src/ && make PREFIX=/usr/local/redis install && chown -R redis:redis /usr/local/redis && mkdir /etc/redis - unless: test -d /usr/local/redis - require: - user: redis-user-group - file: redis-source-install - pkg: pkg-init
服务模块
# vim /srv/salt/prod/redis/service.sls include: - redis.installredis-init: file.managed: - name: /etc/init.d/redis3 - source: salt://redis/files/redis3 - mode: 755 - user: root - group: root - require: - cmd: redis-source-install cmd.run: - name: chkconfig --add redis3 - unless: chkconfig --list | grep redis - require: - file: redis-init/etc/redis/redis_6350.conf: cmd.run: - name: mkdir /etc/redis file.managed: - source: salt://redis/files/redis_6350.conf - user: redis - group: redis - mode: 644 redis-service: service.running: - name: redis3 - enable: True - restart: True - require: - cmd: redis-init - watch: - file: /etc/redis/redis_6350.conf
执行配置测试,没有问题再安装,至此salt安装redis服务已完毕:
# 先测试先处理一些简单的错误
salt 'test4_haili_dev' state.sls redis.service env=prod test=Truesalt 'test4_haili_dev' state.sls redis.service env=prod
阅读全文
0 0
- saltstack自动化运维系列12配置管理安装redis-3.2.8
- saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix
- saltstack自动化运维系列⑧SaltStack实践配置管理安装nginx-1.10.3
- saltstack自动化运维系列⑤之saltstack的配置管理详解
- saltstack自动化运维系列①之saltstack服务安装及简单使用
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
- saltstack自动化运维系列⑩SaltStack二次开发初探
- saltstack自动化运维系列11基于etcd的saltstack的自动化扩容
- saltstack自动化运维系列②之saltstack的数据系统
- saltstack自动化运维系列③之saltstack的常用模块使用
- saltstack自动化运维系列④之saltstack的命令返回结果mysql数据库写入
- 实践SaltStack安装和配置管理
- SaltStack实战之配置管理-LAMP自动化部署
- 自动化运维工具 Saltstack安装配置
- saltstack配置管理
- SQL Server自动化运维系列——关于邮件通知那点事
- SQL Server自动化运维系列——关于邮件通知那点事
- haproxy配置基于ssl证书的https负载均衡
- gstreamer中由gstbuffer unref引起的crash分析
- web服务器tomcat入门实战
- 反向代理负载均衡之APACHE
- 一些非常好看的背景颜色渐变
- saltstack自动化运维系列12配置管理安装redis-3.2.8
- codis3.2安装报错dashboard.go:369: [PANIC] call rpc create-proxy to dashboard 127.0.0.1:18080 failed的处理
- 文件缓存tmpfs简单使用
- centos6.5环境wget报错Unable to establish SSL connection
- 每天五分钟linux(11)-nl
- zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程
- check the manual that corresponds to your MySQL server version for the right syntax错误
- ssdb主从及双主模型配置和简单管理
- 通过codis3.2实现redis3.2.8集群的管理