记录docker安装saltstack过程

1,025 阅读1分钟

开始

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官文档