您的位置:首页 > 其它

saltstack实战之基础配置

2013-03-31 12:36 309 查看
转自: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编辑)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: