我正在尝试使用ansible来做一个git pull / push。 我正在一台服务器上运行,希望在远程主机上自动化或编排一个git pull / push。 现在,因为我没有find一个mmodule在可靠的文档网站上做到这一点,我决定使用脚本模块去脚本路线 当它运行脚本中调用的git pull时,这个问题是非常棘手的 任何人都知道如何使用ansible来运行git pull / push? 谢谢
系统pipe理员存在于所有环境的sudoers文件中,但是其他sudoers不是。 不同的环境都有略微不同的sudoers。 大多数情况下,90%的用户是相同的,10%是不同的,所以我们不能只有一个sudoers文件的一切。 目前,我们正在使用10个不同文件的木偶,如sudoers.production1,sudoers.production2,sudoers.production3,sudoers.testing1,sudoers.staging1等等。 然后Puppet根据服务器的$ domain(例如:dbserver.staging1.acme.com)或$ hardwaremodel选取要部署的文件。 它工作正常,但这是一个噩梦来维护这么多的文件。 我想基于服务器的域自动生成sudoers文件,并且只有一个大文件,所有用户和所有环境都具有sudoers权限。 东西看起来像: User_Alias ADMINS = abe, bob, carol, dave case $domain { "staging1.acme.com" { #add dev1,dev2,tester1,tester2 to sudoers file } "testing2.acme.com" { #add tester1, tester3, tester4 to sudoers file } 最好的办法是什么呢? 欢迎提出替代scheme。 我会很感激任何提示。 更新1: 出于安全原因,我们宁愿不连接位于puppet客户端的文件夹中的一堆文件,以防有人将文件放在那里(恶意或不合法),或者中断合并的文件或插入某些文件。 最重要的是,为了可用性,我们希望在puppet服务器上保留sudoers相关的文件(片段或完整)的数量为3(prod / stage / test),或者最好是1个文件。 这个文件将(以某种方式)在puppet服务器上生成sudoers文件,并向每个puppet客户端发送一个定制文件。 这样做的目的只是在一个文件中search一个用户名,并且比在11个文件上更快地删除它。 当把一个用户添加到一堆环境中时,它不会那么快,但是只需打开一个文件就可以看到,大大减less了遗漏的可能性。 我们的Sudo版本是1.6.9p8,所以我们不能使用/sudoers.d文件夹,只有sudoers文件。 UPDATE2: 我一直在search一些,我刚刚发现了这个,我花了一个小时在看: https://github.com/saz/puppet-sudo#readme […]
我正在尝试构build一个定制的SCCM报告,并且可以使用那些比我有更多数据库结构经验的人的帮助。 我想要列出的是: 设备集合 设备 软件更新组 这个想法是能够运行基于设备集合的报告,然后让该报告为该集合中的每个设备显示部署到该设备的每个软件更新组的合规性状态。 如果已经有一个报告,我还没有find让我知道,但否则,如果你可以帮助我与哪些表/视图我将不得不join获得这些信息,将不胜感激。 现在,我要在控制台中监视,部署,然后为每个部署和检查,看看哪些机器符合等这是我所寻找的是相反的,是更耗时,特别是当我在寻找如果一个特定的机器是完全更新或没有。
背景 – “外联网” 我们有大约十几个用户在使用我所谓的Extranet 。 这是一个空隙的局域网,与我们的主局域网在物理位置相同。 我们与位于另一栋楼的姊妹机构共享Extranet局域网,同时我们拥有设备,pipe理实际的路由器和交换机。 一旦连接离开我们的大楼,它就会通过我们的姊妹机构的基础设施,在这里我们的用户stream量与用户的stream量混杂在一起。 最后通过专用电路发送到金融机构的networking,这样我们所有的用户都可以做财务 。 我们与姊妹机构和金融机构都有非正式和正式的协议,其中包括这些限制: 为了将我们用户的互联网使用限制在一个合理的数量,因为他们使用我们的姊妹机构的互联网连接时,一般的networking东西 我们从来没有在任何情况下允许数据包从主局域网路由到外网局域网。 缺乏可pipe理性:外联网还是额外的头痛? 外联网计算机几乎是空隙DMZ,它们不是通过Active Directory进行pipe理,而是从独立的机架式服务器获取文件,打印机和WSUS服务。 这限制了他们电脑的可pipe理性。 限制#2要求我们进行一些扭曲来执行备份和一般pipe理工作。 当这个部门有IT员工时,这一切都很好,但现在他们不(YAY!预算削减!)。 我和我的主pipe同意,最好的办法就是把它们移到我们现有的平台上,所以我们只维护一个系统而不是两个或三个系统。 还有一个额外的灾难恢复和业务连续性问题。 站在计划本质上是采取包含备份的LTO磁带去某个地方,然后恢复数据,我们走了。 我和我的主pipe都同意,在这个计划可行之前,这个计划中没有一些细节。 同时解决这个问题以及文件服务是很好的。 最后但并非最不重要的… 财务资料是时间敏感和重要的。 如同数百万美元的重要。 他们的计算机和Extranet局域网的标准化,可靠性和安全性是一个需求,更重要的是,现在我们没有IT人员可以在工作的最初几个小时内立即回应问题。 我们的外联网用户的技术要求非常平凡:Windows 7工作站,文件,打印和更新服务,互联网访问和由我们的财务合作伙伴提供的一些第三方应用程序。 目标 我想完成以下内容: 消除他们的独立服务器,并通过另一种方法提供文件,打印和更新服务 为DR / BC目的获取某种热备份文件服务 提高我们的机器的可见性和可pipe理性 在不违反与姊妹机构和财务合作伙伴的协议的情况下做到这一切 实际问题 什么样的技术和架构的组合将为此工作? 虽然我知道这听起来像一个购物推荐,我正在尽力把它作为一个架构的问题,避免X / Y陷阱 , 请随时编辑适当的。 文件/打印服务 我可以看到许多针对文件和打印服务的解决scheme – 我相信我们可以将Extranet作为VLAN扩展到我们的虚拟化平台上,然后我们可以取消机架式服务器和相关设备。 不幸的是,这不包括DR / BC服务 – 我正在研究Azure文件存储 ,一个基于Azure的虚拟机,我们用作DFS目标,甚至是OneDrive […]
有时我想自动添加一个configuration到一个conf文件,我可以在后面以脚本方式删除,例如我想暂时让10台主机login到远程系统日志服务器。 所以我在剧本里是这样的 ##some other commands echo "kern.* @syslog.server.local" >> /etc/syslog.conf service syslogd restart 不过经常更新一些其他的命令并再次运行脚本。 显然这不是幂等的,我不能重新应用它没有一些grep /删除jiggerpokery,我不能轻易地删除它。 所以我已经采取了这样的事情; cat <<HEREDOC >>/etc/syslog.conf ###some unique string### echo "kern.* @syslog.server.local" ###end some unique string### HEREDOC 这使我可以做到这一点,使操作可重复… sed -e 's/###some unique string###(*)###end some unique string###/replacement/g' /tmp/syslog.conf > /tmp/syslog.conf cat <<HEREDOC >>$dfile ###some unique string### echo "kecrn.* @syslog.server.local" ###end some unique […]
我想要位于/etc/puppet/files/key.pgp服务器文件 file { "/var/www/key.gpg": ensure => present, source => 'puppet:///files/key.gpg', } 我得到这个错误: Not authorized to call find on /file_metadata/files/key.gpg auth.conf :(我明白这应该匹配file* ) path /file allow * fileserver.conf: [files] path /etc/puppet/files allow * 难道我做错了什么? 我正在使用图书pipe理员来pipe理我的模块,所以我不想把任何configuration特定于模块目录。
我有一个单盐连接盐主。 我最近从'webserver.sls'重命名为'jetty.sls'。 我用pygit2和ssh使用gitfs后端。 我只启用了gitfs后端。 /etc/salt/master : fileserver_backend: # – roots – git gitfs_provider: pygit2 gitfs_remotes: – [email protected]:Groomblecom/[repo].git: – pubkey: /root/salt-credentials/id_rsa.pub – privkey: /root/salt-credentials/id_rsa 但是,每当我运行salt-run fileserver.update && salt '*' state.highstate我得到一个错误: Data failed to compile: ———- No matching sls found for 'webserver' in env 'base' 运行salt '*' state.show_sls jetty给出预期(长)输出,与我在bitbucket回购中看到的一致。 运行salt '*' state.show_top给出以下内容: ———- base: – common – […]
所以我刚刚开了一家新公司,在熟悉自己的知识库的同时,我想知道是否有办法看到来自group_vars,host_vars和所有这些variables的variables是不是一回事,关于主人的事实。 例如,如果我有一个主机文件 [foo:children] bar [bar] baz 所以我有两个group_vars文件foo.yml — app: kyle 和bar.yml — env: prod 然后我有一个host_vars文件baz.yml — type: app-server 有什么办法可以得到如下所示的输出: Host: baz app = kyle env = prod type = app-server 我已经查看了设置模块,但是当我运行ansible_* ansible all -m setup它会返回所有的ansible_*variables,但不包含我定义的variables。
我见过许多build议来对configurationpipe理系统进行版本化。 你如何build议一个处理应用程序安全所需的密码? 版本化它们呢?
我们是一家使用Puppet进行Linuxconfigurationpipe理的中型商店。 由于我们是小商店,所以很难部署和维护DTAP环境。 我们通常在configuration更改后执行手动testing。 我想以某种方式自动化; 就像你会在软件回归testing中看到的一样。 例如,一个用例就是一个OpenLDAP集群。 我会: 我将在Puppettesting环境中的testing节点上进行更改 testing服务 如果失败,请返回到步骤1 从集群中删除一个节点 进行configuration更改 testing服务 如果失败,请返回到第5步 将节点添加回集群 testing服务 如果失败,请返回到第4步 最后,部署到其他节点 理想情况下,我想自动化testing,以便更有信心地部署更改。 任何人都可以推荐这样的事情? 最好是挂钩到木偶但不一定是要求的东西。 有关最佳做法的build议也将不胜感激。