欢迎来到梦飞科技

服务器租用

当前优惠活动:

CentOS系统下批量安装陈设Nginx处事器情况具体说明

安装情况:
System: Centos 6.3
Salt master: salt-master.example.com
Salt minion: salt-client01.example.com
Salt minion: salt-client02.example.com
一.  主控端设置
1. 设置master根基参数
# vi /etc/salt/master
添加:
nodegroups:
   webgroup1: 'salt-client01.example.com'
   webgroup2: 'salt-client02.example.com'

file_roots:
  base:
    - /srv/salt

pillar_roots:
  base:
    - /srv/pillar
Tip: 这里的nodegroups里的分组会应用到随后的pillar剧本下, 用来区分差异的salt-minion利用相应的pillar参数, 从而定制差异的minion利用差异的设置方案.
重启处事
# /etc/init.d/salt-master restart
2. 动态设置客户端系统毗连数
利用python剧本编写grains_module, 实现动态设置被控主机毗连数(CLI可用"limit -n"查询该值), 以便随后的Nginx设置文件中的worker_rlimit_nofile, worker_connections可动态挪用剧本中max_open_file的参数值.
Tip: "ulimit -n" 是用来查询当前linux系统的最大打开文件数, 默认为1024
也可用"ulimit -a"来查察其他相关参数
# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7819
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
临时修改当前session的参数值
# ulimit -n 2048
永久修改需修改该参数值
# vi /etc/security/limits.conf
添加:
root soft  nofile 2048
root hard  nofile 2048
# vi /etc/pam.d/common-session
添加:
session required pam_limits.so
重启生效.
剧本详细设置如下:
# mkdir -p /srv/salt/_grains
# vi /srv/salt/_grains/nginx_config.py
 #!/usr/bin/env python

import os,sys,commands 

# return Nginx config grains value 
def NginxGrains(): 
    grains = {} 
    max_open_file=65536  
    try: 
getulimit=commands.getstatusoutput('source /etc/profile && ulimit -n') 
    except Exception,e: 
        pass 
    if getulimit[0]==0: 
max_open_file=int(getulimit[1]) 
    grains['max_open_file'] = max_open_file 
    return grains
Tip: 该剧本会同步到长途后执行, 剧本实际就是获取并返回当前主机的最大打开数值, 最终返回值会赋予字典 grains['max_open_file']
同步grains模块:
# salt '*' saltutil.sync_all
刷新模块(让minion编译模块)
# salt '*' sys.reload_modules
验证max_open_file key的value
# salt '*' grains.item max_open_file
Tip: 这里笔者测试变动客户端最大文件打开值时发明白一个问题, 无论客户端如何变动这个值, 在验证key value时终会显示最早的系统初始值1024, 翻阅了大量文档, 发明minion端会将所有处事端的推送生存在(/var/cache/salt/minion), 这里删除这个缓存目次并重启salt-minion, 让其生成新的缓存目次, 重新同步grains模块, 新的vaule就会生效.
# salt '*' cmd.run 'rm -rf /var/cache/salt/minion && /etc/init.d/salt-minion restart'
3. 设置pillar
1). 界说进口sls
# vi /srv/pillar/top.sls
base:
  webgroup1:
   - match: nodegroup
   - nginx.webserver1
  webgroup2:
   - match: nodegroup
   - nginx.webserver2
Tip: 这里界说webgroup1的所有minions会利用pillar/nginx/webserver1.sls剧本, webgroup2所有minions利用pillar/nginx/webserver2.sls剧本, match: nodegroup 界说webgroup1, webgroup2匹配nodegroup组.

梦飞科技 - 全球数据中心基础服务领先供应商

Copyright © 2003-2019 MFISP.COM. 国外服务器租用 IDC公司 版权所有 粤ICP备11019662号