示例方案:某个服务的配置文件保留在私有github存储库的版本控制之下.我想编写一个在远程节点上获取其中一个文件并将其放入所需位置的剧本.
我可以想到几个解决方案:
local_action
)的机器上签出,然后使用该copy
模块git
模块)进行结账,将文件复制到所需的位置command: cp src dest creates=dest
(也许用处理程序执行此操作 - 仅当repo有要更改的时候)command: wget https://raw.github.com/repo/.../file creates=file
在playbook中只下载感兴趣的文件.该command
模块是否实际要检查要创建的文件是否与可能已存在的文件不同,还是只检查文件是否存在?local_action
)的机器上使用wget ,然后使用复制模块将其推送到远程节点这些的优点/缺点是什么?哪些(如果有的话)可以被视为良好做法.什么是最好的通用解决方案?
您使用什么包来处理命令行选项,设置和配置文件?
我正在寻找从命令行和/或配置文件中读取用户定义选项的东西.
选项(设置)应该可以分为不同的组,以便我可以将不同的(子集)选项传递给我的代码中的不同对象.
我知道boost::program_options
,但我不太习惯API
.有轻量的替代品吗?
(顺便说一句,您是否在代码中使用了可以从任何地方读取的全局选项对象?或者您会认为这是邪恶的吗?)
c++ command-line options configuration-files configuration-management
我们使用JIRA作为我们的票务系统.新的错误/票据将提交给该系统.一旦修复了错误,我们就会在我们的开发服务器上创建一个新的构建并对其进行测试.如果一切顺利,我们将其推送到实时服务器.现在我通常在没有任何分支的行李箱上工作来修复bug.这当然是个问题.因为我们的系统中可能存在许多错误,但只有某些错误一次得到修复.但是,如果我将所有这些都安装在主干而不是分支中,那么即使我们没有足够的时间来测试它们,我们也不得不对它们进行全部测试.你如何通常修复错误和分支等..?(我不确定我是否解释得很清楚).
在git中,我熟悉如何使用git checkout -- [<paths>...]
语法检查已删除的单个文件(建议您这样做)git status
.
要获取所有文件,您可以创建一个列表并将列表作为上述命令的参数.
但是,当你只想要删除所有已删除的文件(即你的cwd中的rm -rf,然后你想恢复所有文件)时,生成该列表是不优雅的.
如何查看所有已删除的文件?
我想在相同的解决方案配置中两次构建相同的项目,改变一些#define标志以切换功能.两个二进制文件将使用不同的名称进行部署.
我所知道的解决方案可以起作用:
添加解决方案配置 - 但我需要两次构建解决方案,我宁愿避免.两个项目配置将始终构建.
复制项目 - 但是当我只想维护不同的配置时,我有维护新项目的开销.
批量构建 - 我避免使用批量构建,因为我使用devenv进行本地开发,使用msbuild进行持续集成.
还有其他想法或建议吗?
我们有两个不同的环境,开发和生产,由一个Salt服务器管理.像这样的东西:
base:
'dev-*':
- users-dev
'prod-*':
- users-prod
Run Code Online (Sandbox Code Playgroud)
user-dev
和users-prod
状态是几乎相同的,就像这样:
{% for user, data in pillar['users-dev'].items() %}
{{ user }}-user:
user.present:
< ...something... >
{{ user }}_ssh_auth:
ssh_auth.present:
< ...something... >
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我们不想复制代码,所以我们最初的想法是做这样的事情:
{% users = pillar['users'].items() %}
include:
- users-common
Run Code Online (Sandbox Code Playgroud)
然后引用users
in users-common
,但这不起作用,因为正确的Jinja语法是,set users = pillar['users'].items()
并且这不打算跨盐状态包括.
那么,问题是如何正确地做到这一点?
我正在尝试将一个String参数添加到我的jenkins构建中,但是我找不到一个让它可选的选项,在Jenkins WIKI上我发现了一个screeshot并且有一个选项可以让它可选:https:// wiki .jenkins-ci.org/display/JENKINS/Parameterized + Build.
string build configuration-management jenkins jenkins-plugins
2个星期前,我提交了我的应用程序的配置,它有我的密码,它不是很有用.如何从提交历史记录中删除该文件并确保它不会重新提交?
我想从所有提交树中删除该文件,因为它包含我的密码.
我使用subversion作为RCS.总是当我的项目的新版本被完成时,我创建它的标签(主干的副本).有谁知道我如何保护这个标记的目录不被意外修改?
目前作为解决方法我锁定所有文件.但是这个窗台意味着拥有锁的用户可以编辑文件.
有没有更好的解决方案?
我们有CCNET和msbuild创建我们的常规构建.我正在尝试更新我们的流程,以便msbuild创建压缩部署包,msdeploy将它们发送到目标IIS7 Web服务器.我在完成端到端解决方案时遇到了麻烦,所以对于测试我现在只想从命令行调用msbuild.我执行这个声明:
msbuild /target:Build;Package /P:Configuration=Staging;OutDir=D:\Builds\Viper.ProdSupport\MSDeployPkg\ /verbosity:diagnostic D:\builds\ViperPortal.ProdSupport\Code\Viper\Viper.UI.MVC\Viper.UI.MVC.csproj
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
/temp/global.asax(1):错误ASPPARSE:无法加载类型'Viper.UI.MVC.MvcApplication'.[d:\建立\ ViperPortal.ProdSupport \代码\蝰蛇\ Viper.UI.MVC\Viper.UI.MVC.csproj]
哦,对于我们的规格:.NET4,MVC3,IIS7/Win2k8 64位用于Web服务器.构建服务器也是Win2k8,但我在win 7 32bit盒子上本地测试脚本,ccnet和本地完整的dev config mgmt环境设置.
有没有人有任何想法,为什么我收到此错误?我阅读了一些抱怨aspnet编译器或更改bin部署程序集的消息,但这些似乎都没有真正适用于此.我只是试着打电话给msbuild,它现在一直在工作.我们的解决方案有一个自定义的msbuild脚本.我尝试使用它和mvc csproj文件作为构建配置文件.请帮忙!谢谢!
git ×2
msbuild ×2
ansible ×1
branch ×1
build ×1
c++ ×1
command-line ×1
deployment ×1
git-checkout ×1
github ×1
jenkins ×1
merge ×1
options ×1
rcs ×1
salt-stack ×1
string ×1
svn ×1
wget ×1