rgfsd2 发表于 2015-4-1 08:58:18

Saltstack服务部署文档

1      Saltstack概念SaltStack是开源的管理基础设置的轻量级工具,容易搭建,为远程管理服务器提供一种更好、更快速、更有扩展性的解决方案。通过简单、可管理的接口,Salt实现了可以管理成千上百的服务器和处理大数据的能力。2      saltstack安装2.1安装epel源# rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm2.2安装salt服务在master上运行:# yum install salt-master -y在minion上运行:# yum install salt-minion -y3      saltstack配置3.1Master端的配置# cat /etc/salt/master==================================================================================default_include: /etc/salt/master.d/*.conf               指定其他自定义的配置interface: 172.18.11.226                                          master的监听地址pidfile: /var/run/salt-master.pid                                 pid文件位置pki_dir: /etc/salt/pki/master                                    存放minion认证文件位置file_roots:                                                               state系统根目录base:- /srv/salt…其余保持默认即可…==================================================================================3.1.1    启动salt-master# chkconfig salt-master on# service salt-master start3.2Minion端的配置# cat /etc/salt/minion==================================================================================master: 172.18.11.226                                             指定masterpidfile: /var/run/salt-minion.pid                                    pid文件位置pki_dir: /etc/salt/pki/minion                                       存放master认证文件位置id: client                                                          minion端ID号,必须唯一==================================================================================3.2.1    启动minion客户端# chkconfig salt-minion on# service salt-minion start4      Saltstack认证注意:以下操作均在salt-master端进行4.1查看minion列表# salt-key –L==================================================================================Accepted Keys:Unaccepted Keys:client                                                                      当前minion还未被添加认证Rejected Keys:==================================================================================4.2添加minion客户端# salt-key –a client==================================================================================Accepted Keys:client                                                                      minion已添加认证,可以与master通信了Unaccepted Keys:Rejected Keys:==================================================================================5      Saltstack测试注意:以下操作均在salt-master端进行# salt‘client’ test.ping==================================================================================client: True==================================================================================# salt‘client’ test.versions_report==================================================================================client:                                                    查看minion端的版本信息Salt: 2014.1.10Python: 2.6.8 (unknown, Nov7 2012, 14:47:45)Jinja2: 2.5.5M2Crypto: 0.21.1msgpack-python: 0.1.12msgpack-pure: Not Installedpycrypto: 2.3PyYAML: 3.08PyZMQ: 2.1.9ZMQ: 2.1.9==================================================================================6      Grains系统6.1grains系统概念grains是minion第一次启动的时候采集的静态数据,可以用在salt的模块和其他组件中。其实grains在每次的minion启动(重启)的时候都会采集,即向master汇报一次。grains的特性–每次启动汇报、静态决定了它没有pillar灵活,要知道pillar是随时可变的,只要在master端修改了那一般都会立刻生效的。所以grains更适合做一些静态的属性值的采集,例如设备的角色(role),磁盘个数(disk_num)等诸如此类非常固定的属性。6.2定义grains数据# salt ‘client’ grains.setval roles app定义client为app角色,根据业务角色划分,方便以后批量配置管理# salt ‘client’ grains.item roles==================================================================================client:roles: app                                                                               可以看到已定义成功==================================================================================6.3查看minion端的grain数据# salt ‘client’ grains.items==================================================================================…略…os: CentOSos_family: RedHatosarch: x86_64oscodename: Finalosfinger: CentOS-6osfullname: CentOSosmajorrelease:      6      4osrelease: 6.4…略…==================================================================================深入理解grains系统,请参考:http://docs.saltstack.cn/zh_CN/latest/topics/targeting/grains.html7      State系统7.1state系统概念Salt State系统的核心是由sls结尾的state文件组成的,配置简单而且灵活,SLS文件本质上只是一些dictionaries,lists,strings和numbers。这种设计让SLS文件非常灵活,可以满足开发者的各种需求,而且可读性很高。写得越多,就越清楚到底写得是什么。7.2state系统配置首先需在master配置文件中打开state系统,定义state目录路径# cat /etc/salt/master==================================================================================...略...file_roots:                                                               state系统base:                                                                      base代表基础环境- /srv/salt                                                                  state系统根目录路径...略...==================================================================================Salt默认使用能找到的最简单的序列化数据格式——YAML,来表达SLS数据。典型的SLS文件如下:# cat /srv/salt/apache.sls==================================================================================httpd:                        数据的ID,被称作ID声明   pkg:                         pkg使用系统本地的软件包管理器管理将要安装的软件,如yum   - installed==================================================================================7.3执行state配置# salt ‘client’ state.sls apache注解:state.sls                表示执行state配置apache               执行apache.sls的state配置,注意这里不需要sls后缀,可看做是/srv/salt/apache.sls
也可通过下面的方式执行state配置:# salt ‘client’ pkg.install apache
深入理解state,请参考:http://docs.saltstack.cn/zh_CN/latest/topics/tutorials/states_pt1.html8      Pillar系统8.1pillar系统概念Pillar是Salt非常重要的一个组件,它用于给特定的minion定义任何你需要的数据,这些数据可以被Salt的其他组件使用。Pillar数据是与特定minion关联的,也就是说每一个minion都只能看到自己的数据,所以Pillar可以用来传递敏感数据(在Salt的设计中,Pillar使用独立的加密session,也是为了保证敏感数据的安全性)。8.2pillar系统配置默认情况下,master配置文件中的所有数据都添加到Pillar中,且对所有minion可用。如果要禁用这一默认值,可以在master配置文件中添加如下数据,重启服务后生效:# cat /etc/salt/master==================================================================================...略...pillar_opts: Falsepillar_roots:                                                                      pillar系统base:                                                                              base代表基础环境- /srv/pillar                                                                        pillar系统根目录路径...略...==================================================================================
# cat /srv/pillar/apache.sls=================================================================================={% if grains['os'] == 'RedHat' %}apache: httpdgit: git{% elif grains['os'] == 'Debian' %}apache: apache2git: git-core{% endif %}==================================================================================
8.3查看minion端pillar数据在master上修改Pilla文件后,需要用以下命令刷新minion上的数据:# salt ‘client’ saltutil.refresh_pillar
# salt ‘client’ pillar.data如果定义好的pillar不生效,建议刷新一下试试
深入理解pillar系统,请参考:http://www.saltstack.cn/projects/cssug-kb/wiki/Using_pillar_data_in_saltstack9      Salt的常用命令获取帮助信息                   salt '*' sys.doc列出可用的gains                   salt '*' grains.items根据操作系统来控制minion                   salt -G -v 'os:SUSEEnterprise Server' test.ping                   salt -G -v 'os:centos' test.ping根据IP来控制minion                   salt -S '172.18.13.102' test.ping             orsalt -S '172.18.13.0/24' test.ping删除文件                   salt 'client' file.remove /tmp/foo重命名文件                   salt 'client' file.rename /path/to/src /path/to/dst查看文件状态(全面信息)                   salt 'client' file.stats /etc/passwd创建软链                   salt 'client' file.symlink /path/to/file /path/to/link创建文件、刷新文件atime/mtime                   salt 'client' file.touch /var/log/emptyfile显示网络接口信息                   salt 'client' ip.get_interface eth0                   salt 'client' network.interfaces                   salt 'client' network.ip_addrs显示MAC地址信息                   salt 'client' network.hw_addr eth0显示全局网络接口信息                   salt 'client' ip.get_network_settings 显示路由信息                   salt 'client' ip.get_routes eth0               仅对RHEL/Fedora系统有效10         参考网页Salt中文手册http://docs.saltstack.cnSaltStack官方论坛https://groups.google.com/forum/#!forum/salt-userssalt.states.file详解http://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.htmlsaltstack howtohttps://github.com/saltstack

页: [1]
查看完整版本: Saltstack服务部署文档