文档章节

saltstack配置gitfs与开发环境

葫芦咩
 葫芦咩
发布于 2015/11/27 09:53
字数 741
阅读 477
收藏 12
点赞 0
评论 0

##dev,stage,prod配置 目的:使用gitfs统一分布式环境中的配置,将开发环境与生产环境区分开来

###修改/etc/salt/master中如下内容

file_roots:
  #保留字段
  base:
- /srv/salt/base
  #开发环境
  dev:
- /srv/salt/dev
  #测试环境
  stage:
- /srv/salt/stage
  #生产环境
  prod:
- /srv/salt/prod

pillar_roots:
  base:
    - /srv/pillar/base
  dev:
    - /srv/pillar/dev
  stage:
    - /srv/pillar/stage
  prod:
    - /srv/pillar/prod

###重启服务

service salt-master restart
service salt-api restart

###top.sls文件

dev:
  'localhist':
    - test

pillar中的top.sls同上

###命令行测试效果

salt ‘localhist’ state.highstate’

###注意事项 state.sls 命令不受上述配置影响,它默认使用base环境,可通过saltenv=‘dev’ 来指定为开发环境

##使用gitfs ###安装必要的软件包

yum install -y libgit2
yum install -y libgit2-devel
yum install -y libffi
yum install -y libffi-devel
pip install -y pygit2
yum install -y GitPython

###修改/etc/salt/master

gitfs_remotes:
  - ssh://git@127.0.0.1/saltconf.git

fileserver_backend:
  - git

###设置key

  1. gitfs使用/root/.ssh/id_rsa 私钥,确保私钥已经被正确的设置
  2. 确保SSH Host Key 被添加到known_hosts文件中,可以用如下命令来设置(127.0.0.1为git服务器地址): ssh 127.0.0.1

###重启服务

service salt-master restart

默认情况下,salt-master每隔60秒(loop_interval)从gitfs同步一次配置,文件存放在类似这样的路径中/var/cache/salt/master/gitfs/89883d08902f39c3af5e38cd990e2231/.git/

###开发和生产环境 git中不同的分支对应不同环境,例如dev分支对应的就是dev的开发环境。不过有一个例外,master分支对应base环境

###使用git hook触发更新 默认情况下,salt-master每隔60秒去更新gitfs。当使用命令git push来更新文件时 ,可以使用git hook来触发更新gitfs.

####salt-master端配置 修改/etc/salt/master新增如下内容

reactor:
  - 'salt/fileserver/gitfs/update':
    - /srv/reactor/update_fileserver.sls

新增文件/srv/reactor/update_fileserver.sls:

update_fileserver:
  runner.fileserver.update

可以使用如下命令来触发salt-master更新gitfs

salt-call event.fire_master update salt/fileserver/gitfs/update

####配置git服务端hook post-receive钩子的作用是当用户成功push文件后触发一些操作

编辑/home/git/repositories/saltconf.git/hooks/post-receive

#!/bin/sh
set –e
sudo salt-call event.fire_master update salt/fileserver/gitfs/update

由于salt-master使用root权限在跑,git使用普通用户,所以要个git用户sudo权限

  • 编辑/etc/sudoers注释掉如下选项。否则会报错:sudo: sorry, you must have a tty to run sudo

    # Defaults requiretty

  • 新增文件/etc/sudoers.d/git:

    git ALL = NOPASSWD: ALL

NOPASSWD选项使git用户不需要输入密码来使用sudo

###已知问题 在salt-master启动后,第一次触发git hook时,salt-call event.fire_master update salt/fileserver/gitfs/update 命令会执行失败 ,这时可以在执行一次命令,或者等待60秒让sal-master自己刷新,以后就不会出现这个问题了。

###Pillar使用gitfs 可以通过ext_pillar来使用gitfs,不过其只支持base环境,无法设置dev,prod等其他环境,所以忽略掉。

© 著作权归作者所有

共有 人打赏支持
葫芦咩
粉丝 17
博文 19
码字总数 14205
作品 0
浦东
程序员
在SaltStack中启用gitfs

新版本的SaltStack有一个非常好的特性,可以使用git作为文件服务的源,这样一来,在开发环境中可以很方便的把修改同步到测试环境,同时在生产环境中也可以对sls这些比较重要的配置文件进行方便天...

憨厚的瓜 ⋅ 2014/06/05 ⋅ 0

salt syndic 概述

---layout: post title: "salt-syndic" salt syndic 概述 一个基本的salt配置方式是一个master指挥一群minion,为了不再有假设使用任何单一拓扑结构,考虑多种布局的情况下,开发者引入了syn...

行者深蓝 ⋅ 2014/04/29 ⋅ 0

saltstack学习笔记

最近在学习saltstack,对照着官方的文档学习的,官方文档顺序也有些问题,所以看得时候可能觉得顺序安排有些不妥,那就继续往前看,然后看第二遍就会好很多了。 一。target 就是指定你的命令...

老广 ⋅ 2013/12/30 ⋅ 0

Vagrant 1.1, salt and vbguest 配置开发环境的虚拟机

[vagrant][1] 升级到 [1.1][2] 后配置文件的写法有较大变化,从 1.0 改过来时要注意。使用 [salt][3] 来做自动配置需要安装 vagrant 插件 [Salty Vagrant][4],基础 Vagrantfile 描述如下: ...

要飞得更高 ⋅ 2013/04/09 ⋅ 0

Git 的 FUSE 文件系统--gitfs2

gitfs 是一个用于完全集成 Git 资料库的 FUSE 文件系统,你可以将远程的一个 Git 仓库安装为本地的文件系统,任何对文件的改动将会自动的提交到远程资料库。 安装方法: sudo add-apt-repos...

红薯 ⋅ 2014/12/12 ⋅ 3

centos7下yum源安装saltstack

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(Zer...

笨鸟晚 ⋅ 2017/05/28 ⋅ 0

CentOS 7上两种方式安装配置SaltStack

(一)yum方式安装SaltStack: ① 安装master端:yum install salt-master 最基本配置master端:vim /etc/salt/master ------------------------------------------------------------------......

Jamie-Liu ⋅ 2016/07/29 ⋅ 0

GitFS 0.02 发布,使用 Git 存储的 FUSE 文件系统

GitFS 0.02 要求 Linux 和 OS X 下运行,已经测试的系统包括 Gentoo ARM、红帽 x86_64 和 OS X。 GitFS 是一个使用 Python 写的软件,它允许你使用本地的缓存来实现 git 的断线存储服务。软件...

oschina ⋅ 2013/02/10 ⋅ 2

saltstack快速安装

过几天就要离开这家公司了,原先计划做的自动化还没完成,群主推荐了saltstack,上网对比了相关软件puppet和func. 决定选择他来做自动化.前后研究了几天,今天把公司的服务器都上了saltstack,今...

小运 ⋅ 2013/12/06 ⋅ 0

自动化运维集中式管理工具saltstack的基于平台的部署

集中式管理工具saltstack是兼容Linux、Windows、Unix平台,能实现服务器的批量管理,命令或脚本下发,软件部署,环境搭建,配置管理,是运维人员的提高管理效率的工具。至于更详细的功能与优...

盖世英雄iii ⋅ 2017/07/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长...

颖辉小居 ⋅ 13分钟前 ⋅ 0

利用有限制通配符提升API灵活性(28)

1、参数化类型是不可变的 List<String> 不是List<Object>的子类,但是二者是有联系的 利用有限制的通配符类型处理类似情况 List<? extends Object>(生产者) Collection<? super E>(消费者......

职业搬砖20年 ⋅ 20分钟前 ⋅ 0

ssm框架 +bootstrap分页

这里有两种方式 方式一:自己写分页 方式二:使用插件PageHelper 1.自己写分页 1.1 效果 1.2 实现过程 1.2.1 创建分页公共类 //---------------------------1.属性-------------------------...

Lucky_Me ⋅ 27分钟前 ⋅ 0

Istio

helm template install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml after $ kubectl create namespace istio-system$ kubectl create -f $HOME/ist......

openthings ⋅ 27分钟前 ⋅ 0

内核线程、轻量级进程、用户线程

线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成...

117 ⋅ 32分钟前 ⋅ 0

elasticsearch2.4.6升级为elasticsearch-5.5.0的经历

将elasticsearch-5.5.0 中的配置 path.data 指向原来的数据路径 即 path.data: /usr/local/src/elasticsearch-2.4.6/data 注意: elasticsearch-5.5.0 需要将jdk版本升级到1.8...

晨猫 ⋅ 33分钟前 ⋅ 1

lvm讲解 磁盘故障小案例

1

oschina130111 ⋅ 37分钟前 ⋅ 0

那些提升开发人员工作效率的在线工具

本文转载自公众号 Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的。 Hollis偏爱使用...

时刻在奔跑 ⋅ 49分钟前 ⋅ 0

restful风格 实现DELETE PUT请求 的web.xml的配置

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframe......

泉天下 ⋅ 54分钟前 ⋅ 0

Shell数组

Shell数组 Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数...

蜗牛奔跑 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部