saltstack实战之基础配置

来源:互联网 发布:ios专业视频剪辑软件 编辑:程序博客网 时间:2024/05/19 22:05

转自: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 LabelIDC:  {% 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.comretry_dns: 0sub_timeout: 60pki_dir: /etc/salt/pki/miniondns_check: Falseid: 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.0max_open_files: 100000worker_threads: 10pidfile: /var/run/salt-master.pidtimeout: 300file_roots:   base:     - /srv/salt/base   dev:     - /srv/salt/dev/file_ignore_glob:   - '*.pyc'   - '*.svn'   - '*.swp'pillar_roots:  base:    - /srv/pillar/base  dev:    - /srv/pillar/devlog_file: /var/log/salt/masterlog_level: warningnodegroups:  db-list: 'L@192.168.1.*’  web-test: 'L@192.168.23.11,192.168.22.12'

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

部分pillar 配置示例:

###DNS confignameservers: ['8.8.8.8','4.2.2.2']##Yum configyum_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 - Basebaseurl={{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编辑)


原创粉丝点击