SaltStack 部署及入门

SaltStack 部署及入门

SaltStack部署

saltstack 简介

Salt 是一个统一配置管理工具(与 puppet 功能相似)。可以批量远程执行命令、修改配置文件、部署软件、定时执行任务…… 总之,你能想到的,从远程对服务器执行的操作,它几乎都能做,而且可以批量对一批服务器做。

Salt 采用 master(server) - minion(client) 模式。具有很好的水平拓展性,以 “支持无限多个 client” 为设计目标。

总体架构

enter description here

  • Salt Master 控制中心。
  • Salt Minion 装在被操作的服务器上。
  • Grains 是每一台 Minion 自身的 静态 属性。以 Python 字典的形式存放在 Minion 端。
  • Pillar 存放 key-value 变量。存放在 Master 端,由 Master 编译好后,下发给 Minion。所以,可以存放密码之类的涉密的或是一些需要统一配置的变量。
  • State 希望由 Salt 执行的一套操作。(比如 “安装 vim、配置 vim” 可以写在一个 state 里,也可以拆成两个 state 写。)执行时,Master 将 states 生成好,下发给 Minion,由 Minion 执行 states (转化成一条条命令)。

1.安装epel包

For RHEL/CentOS 5

rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.norach.rpm



For RHEL/CentOS 6

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2.master 服务器端

安装
yum install -y salt-master
配置

打开/etc/salt/master 主配置文件;添加如下配置

vim /etc/salt/master

interface: 10.133.33.85
auto_accept: True

开机启动

chkconfig salt-master on

查看服务器端开放的端口

netstat -lntup
# 4505
# 4506 

3.客户端:

安装
yum install salt-minion
配置

minion端至少需要配置两项,id和master需要指定。

1.id: 这台主机的唯一标识! 就像mac地址一样!
2.master: 指定salt master的IP地址或域名!
==注意:注意冒号后面一定要有一个空格。==

$ vim /etc/salt/minion

#id: salt.client.id 不配置,默认为主机名称 
master: 192.168.178.129

4.启动

启动master

service salt-master restart

启动minion

service salt-minion restart

其他启动方式

/usr/bin/python2.6 /usr/bin/salt-master -d
/usr/bin/python2.6 /usr/bin/salt-minion -d

master与minion的认证

master 主机执行

salt-key -L #查看所有主机
#没有接受的key会显示在Unaccepted Keys下
salt-key -A #接受所有主机
salt-key -D #删除所有主机
salt-key -a node1.salt.com  #接受指定的主机
salt-key -d node1.salt.com  #删除指定的主机

==一般情况下,master不会在配置文件中开启自动授权==

测试连通性

master 执行

salt '*' test.ping
node1.salt.com:
    True

salt 基本说明及使用

基本说明

配置文件

/etc/salt/master #master 配置文件修改之后无需重启
/etc/salt/minion #minion 客户端配置文件,修改后需要重启

文件位置

State 文件 默认存放在 /srv/salt
Pillar 文件 默认存放在 /srv/pillar

基本使用

启动 Salt

# 根据自己需要,选择以下启动方式
salt-master
salt-master -d  # daemonize the process
sudo service salt-master start  # linux service
salt-master --log-level=debug

salt-minion
salt-minion -d  # daemonize the process
sudo service salt-minion start  # linux service

执行 Salt 命令

salt '<target>' <function> [arguments]

target
用来指定对哪些 minion 执行操作。可以匹配 minion id 或 Grains。

# 支持正则表达、列表以及 id/grains 混合。

# 普通 (按 minion-id 过滤)
salt '*.example.org' test.ping

# 正则表达 (regular expression)
salt -E 'virtmach[0-9]' test.ping

# 列表 (list)
salt -L 'foo,bar,baz,quo' test.ping

# 混合型 (combined)
salt -C 'G@os:Ubuntu and webser* or E@database.*' test.ping
| Letter |  Match Type        | Example                             |
| :----- | :----------------- | :---------------------------------- |
| G      | Grains glob        | G@os:Ubuntu                         |
| E      | 正则匹配 Minion ID  | E@web\d+\.(dev\|qa\|prod)\.loc      |
| P      | Grains 正则匹配     | P@os:(RedHat\|Fedora\|CentOS)       |
| L      | List of minions    | L@minion1,minion3 or bl*.domain.com |
| I      | Pillar glob        | I@pdata:foobar                      |
| S      | Subnet/IP address  | S@192.168.1.0/24 or S@192.168.1.100 |
| R      | Range cluster      | R@%foo.bar                          |

function:
指定执行哪个命令模块(module)。

要习惯从下面这个 salt builtin execution modules 列表中寻找自己需要的,点进去看详细的命令参数。
http://docs.saltstack.com/en/latest/ref/modules/all/

常用的举例:

salt '*' test.ping
salt '*' cmd.run "ls -l | awk '/foo/{print \$2}'"
salt '*' state.sls xxx

arguments:
module 的参数。通过空格分隔,加在 function 后面。 比如:-l debug 输出 debug 信息

salt 命令参数:http://docs.saltstack.com/en/latest/ref/cli/salt.html
salt module 使用指南:http://docs.saltstack.cn/topics/tutorials/modules.html
salt builtin execution modules 列表: http://docs.saltstack.com/en/latest/ref/modules/all/
salt logging 指南:http://salt.readthedocs.org/en/latest/ref/configuration/logging/index.html

saltapi
123456
crt key 123456
作者:{微尘大海}(weichenddahai),日期:2016-6-17, email:784456305@qq.com

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值