开始
windows终端使用docker运行ubuntu20镜像,进入交互终端
docker run -it ubuntu:20.04 bash
安装
替换apt软件源为阿里云
sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list
sed -i "s/security.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list
更新源
apt update
安装wget和curl
apt install wget curl
导入saltstack存储库密钥
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/ubuntu/20.04/amd64/latest/salt-archive-keyring.gpg
创建 apt sources list 文件
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/ubuntu/20.04/amd64/latest focal main" | tee /etc/apt/sources.list.d/salt.list
更新源
apt update
安装salt-master
apt install salt-master
or
apt install salt-minion
配置与启动
查看运行的容器:
docker ps
查看容器的ip
docker inspect --format='{{.NetworkSettings.IPAddress}}' [容器id]
minion主机配置:
编辑/etc/salt/minion文件,加入以下内容("172.17.0.2"替换为自己的master主机ip)
master:
- 172.17.0.2
启动minion服务
service salt-minion start
master主机操作:
接收所有minion的密钥,并输入Y确认
salt-key -A
列出所有密钥
salt-key -L
执行ping命令检测所有minion主机
salt '*' test.ping
返回如下结果,则配置完成:
[minion主机id]:
True
至此配置完成,可以在master通过命令控制各个minion主机。
安装使用salt-api
master主机安装
apt install salt-api
编辑/etc/salt/master.d/api.conf文件,添加以下内容
rest_cherrypy:
host: 127.0.0.1
port: 8000
disable_ssl: True
启动
service salt-api start
测试访问
curl http://127.0.0.1:8000
返回如下结果,表示配置成功
{"return": "Welcome", "clients": ["local", "local_async", "local_batch", "local_subset", "runner", "runner_async", "ssh", "wheel", "wheel_async"]}
执行sls脚本
在master主机创建目录
mkdir /srv/salt
新建文件/srv/salt/top.sls,添加以下内容:
base:
'*':
新建自定义脚本/srv/salt/test_abc.sls,添加内容后,执行
salt "*" state.sls test_abc
如果脚本中使用jinja模板,需要传入参数,执行命令如下:
salt "*" state.sls test_abc pillar='{"aa":"11", "bb":"22"}'
更多内容请参考:Salt官文档