saltstack实战之基础配置

转自:http://wiki.saltstack.cn/salt-use-base

我线上大部分系统为Centos 5 以上,部署Salt方式通过Yum方式.系统软件和配置大量采用RPM包方式管理[自制RPM], 我所有的服务器采用服务器IP为Minion端的ID,每一个IP会自动匹配出IDC【机房】,ROLE【角色】,以及Pro【项目】

比如IDC【机房】获取方式:

pillar/base.sls:

##Base Label
IDC:
  {% if  '220.181.111' in grains["id"] %}
  room: BJ-IDC-pro
  {% elif  '58.32.19' in grains["id"] %}
  room: SH-IDC-pro
  {% else %}
  room: GZ-IDC-pro

对应的base/base.sls:

idc:
  grains.present:
    -value: {{pillar['IDC']['room']}}

¶ Salt Minion端的配置简单如下:

master: master-salt.2345.com
retry_dns: 0
sub_timeout: 60
pki_dir: /etc/salt/pki/minion
dns_check: False
id: minion-ip

Master端可采用Nodegroups管理,按照本身服务器的属性划分:

可参考如下表格:

salt nodegroups 配置参考

参数

匹配方式

示例

G

通过grains 全局匹配

G@os: CentOS

E

正则方式匹配Minion ID

E@web\d+\.(2345|duote)\.com

L

列表方式匹配minion ID

L@minion1,minion2 or minion3*.domain.com

I

通过Pillar全局匹配

I@pdata.foobar

S

通过网段/IP地址匹配

S@192.168.1.0 /24, S@192.168.1.100

R

通过集群范围匹配

R@%foo.bar 【我没有使用过】

¶ master端配置如下:

interface: 0.0.0.0
max_open_files: 100000
worker_threads: 10
pidfile: /var/run/salt-master.pid
timeout: 300
file_roots:
   base:
     - /srv/salt/base
   dev:
     - /srv/salt/dev/
file_ignore_glob:
   - '*.pyc'
   - '*.svn'
   - '*.swp'
pillar_roots:
  base:
    - /srv/pillar/base
  dev:
    - /srv/pillar/dev
log_file: /var/log/salt/master
log_level: warning
nodegroups:
  db-list: 'L@192.168.1.*’
  web-test: 'L@192.168.23.11,192.168.22.12'

配置里面我没有太多使用Nodegroups,是因为我觉得nodegroups是个鸡肋[个人感受]

部分pillar 配置示例:

###DNS config
nameservers: ['8.8.8.8','4.2.2.2']

##Yum config
yum_repo:
  {% if grains['os'] == 'CentOS' and grains["osrelease"]|int() >= 5 %}
  baseurl: http://yum1.2345.com/centos/$releasever/os/$basearch/
  {% endif %}

对用的sls配置如下:

###system/resolv.conf.jinja

{% for nameserver in pillar['nameservers'] %}
nameserver {{/nameserver?action=content|nameserver|width="100%"}}
{% endfor %}

/etc/resolv.conf:
  file.managed:
    - source: salt://system/resolv.conf.jinja
    - template: jinja

###system/base.repo.jinja
[rc-base]
name=CentOS-$releasever - Base
baseurl={{pillar['yum_repo'['baseurl']}}
gpgcheck=0

/etc/yum.repos.d/base.repo:
  file.managed:
    - source: salt://system/base.repo.jinja
    - template: jinja

以上是我生产中用到的部分配置,还有部分通过修改代码实现的,待运行稳定后会陆续放出配置.

敬请期待......

Zhangmh©2013-03-30

salt-use-base (2013-03-31 02:47:20由pengyao编辑)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值