SaltStack快速入门
SaltStack简介|YAML介绍|SaltStack安装
SaltStack简介
Salt是一个简单易用且功能强大的基础平台配置工具,能够大批量的维护预定义状态的远程节点,支持分布式远程命令执行和数据查询,可以支撑管理上万台规模服务器,数秒钟即可完成数据传递。 SaltStack基于Python语言开发,同时提供API接口方便二次开发和其它平台进行集成,官方提供基于python开发的web界面halite.
三大功能
远程执行
配置管理(状态查询)
云管理
四种运行方式
Local
Master/Minion (C/S模式)
Syndic (类似于zabbix proxy)
Salt SSH
特点总结[点我!]
简单易管理
并行执行
身份认证和通信加密
提供python接口模块及API调用
快速、灵活、易扩展、开放
SaltStack常用网址
GitHub:https://github.com/saltstack
中国SaltStack用户组:http://www.saltstack.cn/
快速入门参考
SaltStack快速入门[点我!]
YAML介绍[维基百科]
YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递回缩写。在开发这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重新命名。 Salt定义的描述文件使用YAML格式,后缀名为
.sls
,YAML详细介绍请看维基百科。
YAML三板斧
1.缩进:表示层级关系 (使用2个空格递增的方式表示层级关系,不能用TAB键)
2.冒号:表示key: value (在saltstack中冒号如果不是表示路径的话后面要有个空格)
3.短横线:表示列表 (短横线后有个空格)
数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的key/value对用冒号“:”来分隔。样例如下: house: family: name: Doe parents: - John - Jane children: - Paul - Mark - Simone address: number: 34 street: Main Street city: Nowheretown zipcode: 12345 注意: 字串不一定要用双引号标识; 在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过不能使用TAB字符); 允许在文件中加入选择性的空行,以增加可读性; 在一个档案中,可同时包含多个文件,并用“—”分隔; 选择性的符号“...”可以用来表示档案结尾(在利用串流的通讯中,这非常有用,可以在不关闭串流的情况下,发送结束讯号)。
SaltStack安装
1.环境准备
查看系统版本内核及IP
[root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-node1 ~]# uname -r 3.10.0-327.18.2.el7.x86_64 [root@linux-node1 ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $3}' 192.168.56.11 [root@linux-node1 ~]# hostname linux-node1.example.com #node2主机名为linux-node2.example.com,IP为192.168.56.12,其余配置相同
2.SaltStack安装
yum源方式安装及基础配置
[root@linux-node1 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm [root@linux-node1 ~]# yum install salt-master salt-minion -y #主机安装同时安装master和minion来测试,从机可以只安装salt-minion即可 配置目录:主配置文件/etc/salt/master、从配置文件/etc/salt/minion 节点2上安装并启动salt-minion,修改/etc/salt/minion配置文件中master的IP地址为master的IP:192.168.56.11,改完配置文件记得重启哦! [root@linux-node2 ~]# vi /etc/salt/minion 16 master: 192.168.56.11 #配置文件16行,保存退出,重启salt-minion服务 公钥、私钥存储目录为/etc/salt/pki/ 密钥认证命令:salt-key -a/A [root@linux-node1 ~]# salt-key -a linux-node2.example.com #认证指定节点主机 [root@linux-node1 ~]# salt-key -A #认证所有配置的minion节点主机 查看sa配置状态信息:salt-key -L(用salt-key -h命令查看命令详情) [root@linux-node1 ~]# salt-key -L Accepted Keys: linux-node1.example.com linux-node2.example.com Denied Keys: Unaccepted Keys: Rejected Keys:
简单测试
[root@linux-node1 ~]# salt '*' test.ping #使用test模块中的ping方法查看管理节点主机是否在线 linux-node2.example.com: True linux-node1.example.com: True [root@linux-node1 ~]# salt '*' cmd.run 'uptime' #cmd模块可以执行所有的shell命令,想查啥状态就查啥 linux-node2.example.com: 23:35:34 up 20 min, 1 user, load average: 0.04, 0.03, 0.08 linux-node1.example.com: 08:39:07 up 21 min, 1 user, load average: 0.12, 0.13, 0.14 [root@linux-node1 ~]# salt '*' cmd.run 'df -h' linux-node2.example.com: Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 48G 4.6G 43G 10% / devtmpfs 903M 0 903M 0% /dev tmpfs 913M 12K 913M 1% /dev/shm tmpfs 913M 8.6M 904M 1% /run tmpfs 913M 0 913M 0% /sys/fs/cgroup /dev/sda1 497M 168M 329M 34% /boot tmpfs 183M 0 183M 0% /run/user/0 linux-node1.example.com: Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 48G 7.4G 41G 16% / devtmpfs 903M 0 903M 0% /dev tmpfs 913M 28K 913M 1% /dev/shm tmpfs 913M 8.6M 904M 1% /run tmpfs 913M 0 913M 0% /sys/fs/cgroup /dev/sda1 497M 168M 329M 34% /boot tmpfs 183M 0 183M 0% /run/user/0
总结
SaltStack使用非常灵活,功能很强大,先入个门再深入学习吧!