install salt on ubuntu/debain

WHEEZY (STABLE) For .

WHEEZY (STABLE)

For wheezy, the following line is needed in either /etc/apt/sources.list or a file in /etc/apt/sources.list.d:

deb http://debian.saltstack.com/debian wheezy-saltstack main

IMPORT THE REPOSITORY KEY.

You will need to import the key used for signing.

wget -q -O- "http://debian.saltstack.com/debian-salt-team-joehealy.gpg.key" | apt-key add -

UPDATE THE PACKAGE DATABASE

apt-get update

INSTALL PACKAGES

Install the Salt master, minion, or syndic from the repository with the apt-get command. These examples each install one daemon, but more than one package name may be given at a time:

apt-get install salt-master
apt-get install salt-minion
apt-get install salt-syndic

salt -L 'a,b,c' state.sls nginx

pillar

other link

配置主服务器和从服务器

主服务器和从服务器指的是控制器和被控制的服务器,这个主服务器本质上是中央协调中心对所有的从服务器,从服务器类似client/server配置,这里的主服务器是server,从服务器是client.

从服务器配置

在本文中,我配置salt-master和salt-minion 命令在同一台机器上,假如你在配置多台服务器,挑选其中一个为master,剩下的成为minions.根据你的需要来配置master和minion,接下来的我会解释如何配置一台服务器为master和另外的机器为minions.

Salt的配置文件在/etc/salt目录下,默认,这些文件被命名为minion和master,假如你在同一台机器安装了salt-master和salt-minion,你会看到不同的两个文件,master和minion

首先,你需要告诉你的minion怎样找到并连接你的Master服务器。即使你运行minion和Master在同一台服务器上,你仍然要告诉minion你的master在哪儿。

1,使用你最喜欢的文本编辑器,打开minion配置文件

2,取消注释行#master,移除# 替换为你的Master服务器的IP地址,应该是这样:master:你的master IP地址。(假如以上操作,在同一台服务器,此时增加 127.0.0.1)

3,命名一个昵称给你的服务器,查找到#id行,再一次移除#号,增加一个nameid:1st-salt-minion,(这个名字可以是任何字符串的)

4,为了重新加载新的配置,你需要使用sudo 重启你的salt-minion进程,-d 选项,启动salt-minion为一个后台进程,这样子的话,你可以访问您的命令行发布更多的命令。

认证 Minion Keys

现在你的minion 已经知道到master在哪里,接下来让他们进行彼此验证,Salt使用公共密钥加密来确保master和minions的安全通信。你需要通过在master端验证minion的证书来明确master和minion之间的是授信的。

认证minion的证书使用salt-key命令,Salt自动生成这些证书,你需要做的仅仅是认证你需要的证书。

1,输入salt-key -L 列出所以没有认证,认证过,拒绝认证的证书

2,你应该可以看到一个没有认证的证书1st-Salt-Minion(或者你自己选择的minion)

3,认证这个证书使用 sudo salt-key -a 1st-salt-minion

通信测试

现在你已经有了一台 salt-master和一台salt-minion,并且master和minion已经相互信任,你可以从master 使用一个test ping的命令来测试他们之间的连接。假如你的master能够连接到minion,将会返回一个”return”.输入 salt ‘*’ test.ping,它应该有如下输出:

>{1st-Salt-Minion: True}

注意,通配符 *代表所有minion,因为这里你只有一台服务器,算是一个简单的模拟测试(要比salt ‘1st-salt-Minion’ test ping 快多了)假如你收到“True”,证明你已经成功安装和配置完成salt stack。

如果没有的话,你也许需要重启你的master和minion 不带-d参数,这样子的话,你能够获取到更多输出信息,更多的参考资料,请查看Salt 官方文档http://docs.saltstack.org/en/latest/topics/configuration.html

Salt的语法结构,包括命令,目标和动作,举个例子,* 指任何主机(* 是一个通配符),test.ping 是动作。

你可以在已经链接和信任的主机上执行任何可用的命令,关键提示:这些需要执行的命令在目标主机上必须可用,例如,如下命令:

sudo salt '*' cmd.run "service apache2 restart"

这个命令只会在已经安装了apach2e web服务器的主机上执行,另外,你也可以使用这样的命令:

sudo salt '*' cmd.run "service httpd restart"

另外一个例子,也许你想要查询你的主机已经运行了多长时间,你可以这样子做:

sudo salt '*' cmd.run "uptime"

在举另外一个例子,假如你的Apache Bench(译者注:一个apche 开源压力测试工具)安装在master上而没有安装在minion上,下面的命令:

sudo salt '*' cmd.run "ab -n 10 -c 2 http://www.google.com:80/index.html"

如果你尝试在minion上执行,你将会失败,因为Apache Bench 没有安装在minion上。