saltstack配置使用git远程仓库作为state数据后端文件系统的方法

Saltstack的state状态配置管理是处理集中配置管理任务的一类重要功能。一般来说,salt master会使用本地文件系统作为state数据的后端文件服务器。为了有更便利、更安全可控的state状态配置数据管理效果,我们可以选择把这份数据存储在一个指定的远程git仓库中,saltstack支持直接访问远程git仓库获取需要使用的state状态配置数据。以下为简要的一个配置使用说明。

安装工具依赖包

我们使用的是centos7系统,saltstack v3001,在开始配置前先确认和删除掉系统默认安装的libgit2和python-pygit2两个低版本的软件。

1)手动下载和编译安装高版本的libgit2软件包
https://github.com/libgit2/libgit2/releases/download/v1.0.0/libgit2-1.0.0.tar.gz

wget https://github.com/libgit2/libgit2/releases/download/v1.0.0/libgit2-1.0.0.tar.gz
tar xzf libgit2-1.0.0.tar.gz
cd libgit2-1.0.0/
cmake .
make
sudo make install

编辑/etc/ld.so.conf文件,添加一行/usr/local/lib64的内容,保存退出,然后执行ldconfig以使生效。

2)安装高版本的cmake

pip3 install cmake

pygit2对高版本的cmake有使用依赖。

3)安装高版本的pygit2并验证

pip3 install pygit2

python3 -c 'import pygit2'

以下描述的是配置salt master服务直接使用git远程仓库作为存储state状态配置数据的文件服务器。默认地,salt master是使用本地文件系统的/srv/salt路径存储这类数据的。所有变更内容,均为编辑/etc/salt/master配置文件。

设置使用多个文件系统后端服务

fileserver_backend:
  - roots
  - git
  • roots参数,代表使用本地文件系统,本地文件系统的存储路径由file_roots参数设置。

设置salt使用pygit2插件

gitfs_provider: pygit2

配置需要使用的git远程仓库

gitfs_pubkey: '/root/.ssh/id_rsa.pub'
gitfs_privkey: '/root/.ssh/id_rsa'
gitfs_remotes:
  - ssh://git@git.your-domain.com/saltstack/srv.git
  • 上面的id_rsa.pub需要在git仓库一侧做好访问授权配置
  • 这里我们使用的是ssh认证方式的git仓库URL地址,当然也支持使用https方式,可以自行在网络上检索下saltstack gitfs_remotes参数的配置说明。

设置state top file文件对于git仓库的相对路径

gitfs_root: salt/

由于我配置使用的git仓库,其根路径下包含salt, pillar两个子目录,只有salt子目录才是用于state状态配置数据存储服务的。

重启服务并验证

systemctl restart salt-master
salt-run fileserver.file_list
systemctl status salt-master -ll

因为我配置的是同时支持git仓库和本地文件系统,所以为测试访问git仓库的有效性,建议在git仓库中存放一些独有的文件,然后使用上面的命令列表查看下显示结果是否正确。
请注意确认salt master服务的状态日志中没有报错信息。

注:在同时配置了多个salt master节点时,被管理的salt minion服务默认策略只会从排在前面的salt master服务获取文件、配置或pillar数据资源。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值