初识SaltStack

SaltStack是什么:

SaltStack是一个运维开源软件,用python写的。

能够实现的功能:

远程执行,配置(状态)管理,云管理

同类型软件还有Puppet,ansible

 

saltstack四种运行方式:
Local
Minion/Master C/S结构,客户端/服务器模式
Syndic - zabbix proxy
Salt SSH
 
 
安装:
需要注意 master和minion安装的主机
主机安装:
yum install -y salt-master salt-minion
从机安装:
yum isntall salt-minion
 
配置:
 
systemctl start salt-master 启动服务
/etc/salt/minion 配置文件
/etc/salt/master 配置文件
 
先配置minion
16行,master:192.168.56.11 配置master的ip,也可以写主机名
101行,id    是minion唯一标识符,可以不配置,默认是主机名,不建议改。
 
minion在启动的时候会创建一个pki目录

 

pem是私钥
pub是公钥
 
minion两台均要如上配置。
之后配置master
master在第一次启动的时候也会生成一个pki目录
 
 
命令:
salt-key 列出所有的key
salt-key-a key......  同意这个Key
 
key在命令中可以使用通配符
salt -key--help 查看帮助
 
同意之后,master和minion会把公钥互相发送。
pki/minion目录下有master公钥
pki/master目录下有minion公钥
 
远程执行命令:
salt命令  “具体命令" 模块.方法
salt '*' test.ping     #因为*在shell中有歧义,所以需要用引号引起,也可以用双引号。test是个模块,ping是个方法。
 
salt "linux-nodel.oldboyedu.com" cmd.run "w"  主机名,cmd模块 w命令
 
salt "*" cmd.run "ls -l /tmp/file"
还可以执行删除命令,所以比较危险。
 
 
上面这种情况说明成功了,没有消息说明没有报错。
 
典型案例:
1.远程执行 salt '*' cmd.run 'uptime'
2.State 需要写一个文件。格式 YAML 后缀.sls
 
YAML:三个规则
1.缩进。通过2个空格。不要使用tab。
2.冒号。冒号和缩进表示层级结构。
             还有个功能表示键值对,冒号后面需要有个空格。
3.短横线。代表一个列表。短横线后面需要一个空格。 
 
slatstack配置文件也是YAML语法
vim /etc/salt/master配置文件
set nu 453行
file_roots:    定义写在哪里,环境定义
base环境是必须的,且名字不能改。
设置之后需要重启服务,并创建该路径目录。
systemctl restart salt-master
mkdir /srv/salt
在base路径下创建一个web目录
就是/srv/salt/web
然后创建文件apache.sls
注意后缀名。
在该文件中写安装命令。
如下:
 
如上文件是一种状态
会有两个id
一个是apache-install
一个是apache-service
模块分执行模块和状态模块。
 
执行该文件:
salt "*" state.sls web.apache
 
执行原理是:
master将执行文件发送给Minion
文件在/var/cache/salt/minion/files/base/web/apache.sls
收到文件之后,自上而下加载。
centos是用Yum
ubantu是用apt-get安装
自动区分系统
安装之后,检查服务状态。
 
top文件
top.sls
top file必须放在base环境下,base环境就放在自己设置的路径下。
在/srv/salt/创建top.sls文件
 
top文件内可以写多个环境,多个服务
 
豆知识:
linux在提示符中显示绝对路径,在/etc/bashrc中将PS1处的W改成w即可,然后sorce /etc/bashrc 再重新打开窗口。
 
先执行:
salt "linux-node.oldboyedu.com" state.highstate test=True
该命令不会执行,会提示将要修改的位置
确认之后在执行,生产环境不建议使用*
salt "*" state.highstate
状态可以多次执行,所以写的时候需要注意。
 
建议以后用salt控制状态,那么就一直用salt,以免对minion做了更改,却没有文件,等想还原的时候不知道
之前都做了哪些更改。
 
SaltStack 数据系统
    Granins(谷粒)
    Pillar(柱子)
Grains:静态数据   当Minion启动的时候收集的Minion本地的相关信息。
                            操作系统版本,内核版本,CPU,内存,硬盘。设备型号,序列号。
1.资产管理
2.用于目标选择
3.配置管理中使用。
 
salt "linux-node1*" grains.ls     列出所有
salt 'linux-node1*' grains.items 列出信息
salt '*' grains.item os  查看每个项具体的值
salt '*' grains.item fqdn_ip4
salt -G ‘os:CentOS’cmd.run 'echo hehe'  目标选择,通过操作系统选择,执行命令
 
 未完待续
 
posted @ 2018-03-20 11:14  铠甲巨人  阅读(306)  评论(0编辑  收藏  举报