光说不练假把式,上一节我们已经了解了基本的salt功能,相信大家已经迫不及待想上手试一试了。这一节我们就来一起搭建一个本地的测试环境,体验下这些功能。
我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。
文章目录
安装saltstack
因为管理的机器类型繁多,操作系统各异,安装软件可能给人的感觉很繁琐。但是安装saltstack是非常容易的,因为官方已经给我们准备好了跨平台的一键安装脚本。
https://repo.saltstack.com/#bootstrap
但是这个一键安装脚本是基于shell的,并不是所有平台都支持。对于不支持的平台可以去下载对应平台的安装包,地址也是上面那个。
如果只是想在本地搭一个实验环境,官方的教程里面已经给我们准备好了vagrant镜像,点这里将整个git仓库下载到本地,就可以一键生成3个节点的实验环境。如下所示,整个集群包含一个master节点和两个minion节点。我们这一节就是使用这个官方的实验环境。
c:\saltstack\salt-vagrant-demo>vagrant status
Current machine states:
master running (virtualbox)
minion1 running (virtualbox)
minion2 running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
vagrant是基于镜像批量创建和管理vm的工具。关于vagrant的使用,可以参考我的vagrant入门教程专栏
基本远程控制操作
下面的操作是基于官方教程创建的实验环境,但是除了登陆机器的方式不一样,其余操作和生产环境没有任何区别。
salt命令的格式如下
salt [options] '<target>' <module.function> [arguments]
具体的函数源码可以直接上salt的github仓库查看,远程操作的都在/salt/salt/modules
这个目录中。这一节只介绍一些基本的操作,更多具体命令的使用后面专门讲解。
接受minions
saltstack的master以及minion的通信都是加密过的。为了达到这个目的minion机器会主动发送自己的public key给master,必须手动在master机器上接受这个key以后,对应的minion才能够接受master的指令。
首先进入master节点
c:\saltstack\salt-vagrant-demo>vagrant ssh master
可以直接免密码切换到root用户
vagrant@saltmaster:~$ sudo su
root@saltmaster:/home/vagrant#
接受全部的key
salt-key --accept-all
查看是否两个minion都已经被接受
root@saltmaster:/home/vagrant# salt-key --list-all
Accepted Keys:
minion1
minion2
Denied Keys:
Unaccepted Keys:
Rejected Keys:
检测连通性
这里利用的是/salt/salt/modules/test.py
中的ping
函数,并不是ICMP ping。返回True表示该minion连接性完好
root@saltmaster:/home/vagrant# salt '*' test.ping
minion1:
True
minion2:
True
跑shell命令
root@saltmaster:/home/vagrant# salt '*' cmd.run 'ls -l /home'
minion1:
total 4
drwxr-xr-x 5 vagrant vagrant 4096 Dec 14 18:19 vagrant
minion2:
total 4
drwxr-xr-x 5 vagrant vagrant 4096 Dec 14 18:19 vagrant
root@saltmaster:/home/vagrant#
跑salt的自建函数
salt社区在不停创造简单好用的自建函数,这些自建函数才是salt的核心所在。而且这些命令在所有支持的平台可以跨平台无障碍使用