北大青鳥(niǎo)小游網(wǎng):值得大家信賴(lài)的游戲下載站!

微信:96kaifa
關(guān)注我們
所在位置:首頁(yè) > 服務(wù)器 > saltstack自動(dòng)安裝配置redis-3.2.8

saltstack自動(dòng)安裝配置redis-3.2.8

發(fā)布時(shí)間:2021-06-30 11:29:08來(lái)源:北大青鳥(niǎo)手游網(wǎng)作者:北大青鳥(niǎo)手游網(wǎng)

一、準(zhǔn)備redis自動(dòng)化配置的文件

即安裝一遍redis,然后獲取相關(guān)文件和配置在salt中執(zhí)行上線

1、 源碼安裝redis3.2.8并注冊(cè)為系統(tǒng)服務(wù)

安裝依賴(lài)

yum install -y tcl

1.1 下載安裝包Redis-3.2.8.tar.gz

# cd /usr/local/src
# wget http://download.redis.io/releases/redis-3.2.8.tar.gz

1.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 #指定安裝路徑

1.3 創(chuàng)建配置文檔,修改配置

創(chuàng)建配置文檔路徑

# mkdir /etc/redis
[root@node2 src]# cp ../redis.conf /etc/redis/redis_6350.conf

以下幾個(gè)參數(shù)常用到

daemonize yes # 后臺(tái)運(yùn)行
bind 127.0.0.1 # 綁定ip,需要外網(wǎng)訪問(wèn)時(shí)將其注釋掉
protected-mode yes # 保護(hù)模式,默認(rèn)是開(kāi)啟的,需要其他客戶(hù)端鏈接時(shí),改為no關(guān)閉
requirepass redispass # 其他客戶(hù)端鏈接時(shí)的密碼
appendonly yes # 每次更新后記錄日志
pidfile /var/run/redis_6350.pid # 如果不是默認(rèn)的6379端口需要修改該行

1.4 注冊(cè)系統(tǒng)服務(wù),開(kāi)機(jī)自啟

創(chuàng)建啟動(dòng)腳本

# cp ../utils/redis_init_script /etc/rc.d/init.d/redis3

修改redis啟動(dòng)腳本,要修改的地方有

添加 chkconfig 注釋

redis-server 、redis-cli 、pidfile、redis.conf路徑

如果需要配置密碼,還要在停止命令增加參數(shù) -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=6350
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pid
CONF=”/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 $CONF
fi
}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

保存后執(zhí)行注冊(cè)成系統(tǒng)服務(wù):

chkconfig –add redis3
chkconfig redis3 on

完成后,可以使用 service redis3 start|stop 啟動(dòng)關(guān)閉redis服務(wù)

1.5 添加環(huán)境變量:

vim /etc/profile

在最后添加:

PATH=$PATH:/usr/local/redis/bin
export PATH# 使配置生效
source /etc/profile# service redis3 start
[root@node2 src]# ps -ef|grep redis
root     20818     1  0 09:57 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6350
root     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 2
OK
127.0.0.1:6350> get name
“2”
127.0.0.1:6350> set jack 18
OK
127.0.0.1:6350> get jack
“18”
127.0.0.1:6350> quit

二、salt相關(guān)的配置處理

# mkdir -p /srv/salt/prod/pkg /srv/salt/prod/redis /srv/salt/prod/redis/files
# cd /srv/salt/prod/pkg

1、 初始化nginx相關(guān)配置文件

①下載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.1
protected-mode yes
port 6350
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6350.pid
loglevel notice
logfile “”
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass redispass
appendonly yes
appendfilename “appendonly.aof”
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events “”
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

③服務(wù)管理腳本

[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=6350
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pid
CONF=”/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、 編寫(xiě)依賴(lài)包安裝

vim /srv/salt/prod/pkg/pkg-init.slspkg-init:
  pkg.installed:
    – names:
      – gcc
      – gcc-c++
      – glibc
      – make
      – autoconf
      – openssl
      – openssl-devel
      – pcre
      – pcre-devel
      – glib
      – glib-devel
      – tcl

3、 用戶(hù)添加模塊

# mkdir /srv/salt/prod/user
# vim /srv/salt/prod/user/redis.sls
redis-user-group:
  group.present:
    – name: redis
    – gid: 6350user.present:
    – name: redis
    – fullname: redis
    – shell: /sbin/nologin
    – uid: 6350
    – gid: 6350

4、 編寫(xiě)nginx狀態(tài)模塊

# cd /srv/salt/prod/redis
vim /srv/salt/prod/redis/install.slsinclude:
  – pkg.pkg-init
  – user.redis
redis-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

服務(wù)模塊

# 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: 644redis-service:
  service.running:
    – name: redis3
    – enable: True
    – restart: True
    – require:
      – cmd: redis-init
    – watch:
      – file: /etc/redis/redis_6350.conf

執(zhí)行配置測(cè)試,沒(méi)有問(wèn)題再安裝,至此salt安裝redis服務(wù)已完畢:

# 先測(cè)試先處理一些簡(jiǎn)單的錯(cuò)誤salt ‘test4_haili_dev’ state.sls redis.service env=prod test=True


  • 熾姬無(wú)雙

    熾姬無(wú)雙

    角色扮演

    查看
  • 古今江湖:奇想江湖

    古今江湖:奇想江湖

    卡牌對(duì)戰(zhàn)

    查看
  • 九州天空城3D

    九州天空城3D

    角色扮演

    查看
  • 字走三國(guó)

    字走三國(guó)

    角色扮演

    查看
  • 英雄之城2

    英雄之城2

    戰(zhàn)爭(zhēng)策略

    查看
  • 龍戰(zhàn)

    龍戰(zhàn)

    角色扮演

    查看
  • 猜你喜歡

    我要評(píng)價(jià)

    6

    邪惡瘋?cè)嗽?/p>

    休閑益智

  • 7

    神雕俠侶2

    角色扮演

  • 8

    一刀傳世

    角色扮演

  • 9

    九州天空城3D

    角色扮演

  • 10

    斗羅大陸手游

    角色扮演

  • 2

    邪惡瘋?cè)嗽?/p>

    休閑益智

  • 3

    熾姬無(wú)雙

    角色扮演

  • 4

    古今江湖:奇想江湖

    卡牌對(duì)戰(zhàn)

  • 5

    九州天空城3D

    角色扮演

  • 6

    字走三國(guó)

    角色扮演

  • 7

    英雄之城2

    戰(zhàn)爭(zhēng)策略

  • 8

    龍戰(zhàn)

    角色扮演

  • 9

    天下?tīng)?zhēng)霸三國(guó)志

    戰(zhàn)爭(zhēng)策略

  • 10

    俠客夢(mèng)

    角色扮演

  • 熱門(mén)游戲分類(lèi)