只是为了一点背景,我已经与Puppet工作了3年,我明白它的架构非常好。 我们公司正在重构基于微服务架构的整个产品,并开始使用持续集成/部署。 我利用这个机会将我们的configurationpipe理切换到Ansible,因此我只能使用一个工具进行部署和configuration/编排。 我们的架构将完全基于AWS,Live,Staging和3 Integration / QA环境。 每个微服务将拥有自己独立的部署过程,并且Integration / QA envs将把所有应用程序保存在一个实例中,而Live / Staging将有多个实例,在某些情况下,每个微服务的实例池也不同。 我的目标是为所有环境设置一个Ansibleconfiguration/部署“存储库”,使用variables通过环境参数化模板。 这样我们就会知道我们在整个开发周期中都有一个一致的configuration和部署stream程。 我现在怀疑的是如何为这些多个应用程序创buildangular色。 我发现这个话题很难“谷歌”,因为我发现大多数post是简单的教程或单个应用程序部署的例子。 我现在考虑的是: 为每个需要的“服务”分隔angular色,比如nginx,java,logstash等等,每个应用程序configuration文件都在里面。 通过这种方式,我可以保持angular色的可重用性,并避免在两个或更多的应用程序使用一个非常类似的configuration文件(可通过variables变得不同)时重复自己。 我还将拥有一个部署angular色,其中包含所有的部署任务。 这是我通常在使用Puppet时所采用的方法,但是它可以分散configuration,有时在一个应用程序configuration中的更改会影响另一个应用程序configuration时,很难find并添加一些情况(主要是由于单个模板服务于多个模板应用程序)。 微服务有一个angular色。 这样做更容易,因为所有的configuration和variables都在同一个angular色中,但是我必须为每个微服务重复任务和configuration,这让我感到一丝不小。 这个问题的原因是要衡量面对同样问题的人们如何处理这个问题,因为通过谷歌search似乎几乎不可能find合理的答案,而且我也没有与Ansible / multi app部署在一起的朋友/熟人。 对不起,如果我不够清楚/困惑,并感谢您可以给我的每一个洞察力。
在我们的(小)组织中,我们使用Google Apps(也称为Gmail for Business)作为电子邮件服务。 我们发现Thunderbird是Google Apps的一个好客户,希望继续使用它。 现在,我们即将安装新的Windows 10电脑。 他们会预先安装Thunderbird,但没有设置。 我们的用户真的不是技术高超的人,所以我想尽可能的让他们更容易。 目标是用户可以坐在他的电脑上,打开雷鸟,他会被问到的是他的电子邮件地址和密码,甚至更好的只是他的密码,所有其他信息应该已经存在。 此外,该configuration文件应该基于networking,以便他可以轻松地切换到另一台电脑,而无需再次这样做。 你将如何以最有效的方式实现这一目标? 我在网上发现了一些关于如何使用autoconfig为用户提供邮件服务器信息的信息,但这对我来说远远不够。 一些额外的信息: 对于所有用户来说,IMAP / SMTP服务器地址自然是相同的 用于电子邮件检索(IMAP)以及传输(SMTP)的凭据相同, 电子邮件地址都有相同的模式,[email protected]。 名字和姓氏存储在Active Directory中。 (这真的只是一个奖金,我可以手动input地址)。
我是1)寻找如何pipe理和2)跨不同环境testing复杂nginxconfiguration的想法。 目前我将Nginxconfiguration存储在github仓库中,将环境分隔到不同的目录(dev,test,stage,prod等),并通过include指令重复使用相同的configuration。 要部署正确的configuration,我正在运行一个简单的脚本来复制到所有正确的configuration,但我开始遇到扩展问题,因为configuration变得越来越复杂,更多的环境被添加到回购。 有没有一个好的工作stream程或方法来pipe理和testingconfiguration? 我正想着以某种方式模板configuration,但不知道从哪里开始。 是否有任何种类的单元/集成框架来testingNginxconfiguration的单独组件? 比如说,“Nginx是在X端口上听的吗?” 以确保事情不会因为新件被添加到configuration而中断。 我最终希望将这种逻辑添加到某种CI / CD中,以确保事物不被破坏。
我需要在我们的networking中执行一个小的库存。 所以我写了一个我想用部署系统部署的VBScript。 我现在的问题是:脚本在AD系统用户的上下文中执行。 所以这一行: Set objNetwork = CreateObject("Wscript.Network") strOutput = strOutput & ";" & objNetwork.UserName 不会返回login的用户,而是返回运行该脚本的AD系统用户。 有人知道这个解决scheme吗?
我正在构build一个基于Spark mini-framework( http://sparkjava.com/ )的API, 每当我通过Maven构build一个包,然后上传到Tomcat 7下的webapps /文件夹。 (真实姓名已被replace为TestProject,以避免泄露任何propriary) 如果我编译该项目并将其命名为TestProject.war,则会加载以下信息: path :/ TestProject 版本 : 没有指定 打开http:// localhost:8080 / TestProject / I后,得到预期的输出: {“code”:400,“message”:“授权信息未在请求中指定”} 如果我然后将文件重命名为TestProject ## 0.0.1-SNAPSHOT_20160308.161909.war并重新启动Tomcat,应用程序将加载以下详细信息: path :/ TestProject 版本 :0.0.1-SNAPSHOT_20160308.161909 不幸的是,当打开相同的URL时,Tomcat返回404: HTTP状态404 – / 键入状态报告 消息 / 说明请求的资源不可用。 阿帕奇 Tomcat的/ 7.0.67 $ cat web.xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > […]
我有一个远程服务器(我自己)的git仓库。 我想确保在git push远程服务器之后,节点程序的一个新实例被拉到本地开发服务器中(然后, forever会收到更改并重新启动它)。 目前,我有一个钩子( post-receive ): unset GIT_DIR export PATH=$PATH:/usr/local/bin/ cd /home/www/node/deployed/node_modules/wonder-server git pull echo "POST COMMIT FINISHED" 但是,它带来了问题: 它期望在开发机器上安装模块,并使用正确的版本 我们还维护了一些我们也会更新的npm模块 这是一个很好的方法来解决这个问题吗? 或者,你能想出更好的办法吗?
在下面的屏幕截图中单击顶部部署时,将显示消息“DT不能为空”,并且部署监视工具closures。 单击其他部署可在信息窗格中显示预期的信息。 我一直无法find关于这个问题的很多信息。 我认为DT代表部署types。 我不确定这个消息是否是部署实际问题的证据。 这是我所知道的: 这个问题发生在许多不同的客户,也可能是所有的客户 部署被分配到一个包含200多个成员的集合。 部署的可用性和截止date时间表是不同的,都在未来。 它们基于UTC时间。 这是一个应用程序,一个脚本安装程序部署types。 操作是安装,目的是必需的。 我能够用一个完全不同的应用程序的全新部署复制这个问题。 部署似乎按计划进行。 部署到“可用”后,问题不再出现,我可以按预期的方式从客户端查看部署的详细信息。 如果我把过去的“可用”时间改变一段时间,问题就会消失。 如果我把时间设定在将来的某个时间,这个问题不会回来,但客户端显示(DMT)和行为像(软件中心)“可用时间”是在将来。 任何援助或想法将不胜感激。 当我得到更多的信息时,我将编辑这个问题,如果我自己来的话,我也会发布答案。 我不能成为这里唯一遇到这个问题的人。
我花了整整一天的时间试图find我的问题的答案,但我失败了,决定在这里发布我的问题。 所以我开发了一个Django应用程序,现在我在将它部署到apache(httpd)服务器时遇到了问题。 如果相关,我正在运行CentOS 7.2。 我一直在遵循这个教程为了做我想要的: https : //www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-centos- 7 显然,我没有从头开始创build一个新的项目,因为我已经有了一个,只是调整它,以适应教程。 一旦我完成并重新启动httpd服务,当试图访问该网站时,我收到以下错误消息: Forbidden You don't have permission to access / on this server. 这不是防火墙的问题,因为当我删除django.conf(即恢复更改)显示默认的Apache网站。 我的django.conf文件如下所示: Alias /static /home/dudu/DjangoProject/mysite/static <Directory /home/dudu/DjangoProject/mysite/static> Require all granted </Directory> <Directory /home/dudu/DjangoProject/mysite> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess DjangoProject python-path=/home/dudu/DjangoProject:/home/dudu/DjangoProject/DjangoProjectEnv/lib/python2.7/site-packages WSGIProcessGroup DjangoProject WSGIScriptAlias / /home/dudu/DjangoProject/mysite/wsgi.py 相关的文件夹结构: /home/dudu/ |–DjangoProject | |–manage.py […]
我正在使用免费版本的PDQ Deploy在域中的客户端计算机上部署Java更新,使用可执行安装程序,而不是提取的MSI。 根据Oracle文档 ,不需要创buildconfiguration文件。 命令行开关可能具有相同的值。 我们的一些客户需要Java 6保持安装。 这就是为什么我在这些客户端上执行静态安装的原因。 下面是我的挑战:当我在这些客户端上部署最新版本(Java 8u91)时,Java 6将被删除。 这些是我使用的命令: jre-6u45-windows-i586.exe /s STATIC=**1** SPONSORS=**0** jre-8u91-windows-i586.exe INSTALL_SILENT=1 AUTO_UPDATE=0 REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1 要么 jre-6u45-windows-i586.exe /s STATIC=**Enable** SPONSORS=**Disable** jre-8u91-windows-i586.exe INSTALL_SILENT=1 AUTO_UPDATE=0 REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1 我testing了两个选项“启用”或“1”/“禁用”或“0” 使用“REMOVEOUTOFDATEJRES = 0”不是一个真正的select,因为我不希望那些同时安装了Java6u45和Java8u71,Java8u73和Java8u77和Java8u91的客户端… 所以这里是我的问题:如果我使用“REMOVEOUTOFDATEJRES = 1”或者我做错了,“静态安装”通常会被删除吗? 他们没有真正提到它的文档,而是他们谈论Java自动更新: 如果执行JRE的静态安装(通过指定命令行或configuration文件选项STATIC = 1),则Java自动更新function将在Java更新期间安装JRE。 相同JRE系列的更高版本将安装在单独的目录中。 这种模式可以确保需要特定版本JRE的厂商可以确定JRE不会被新版本覆盖。 在这个关于Java 7的页面上 ,他们说: 当JRE以静态模式安装时,它将不会被更新版本更新。 相同JRE系列的更高版本将安装在单独的目录中。 这种模式可以确保需要特定版本的JRE产品的供应商可以确定JRE不会被以后的版本覆盖。 静态JRE安装的一些特征如下: 静态JRE安装(例如7 Update […]
我有一个用作服务器的多个C#CLI应用程序的解决scheme,我想从我的Visual Studio构build和部署到一个全新的Azure虚拟机(Windows Server 2012 R2) ,这有可能吗? 目前,我所看到的唯一解决scheme是在此VM上安装Visual Studio 2015,从我的git仓库获取代码并在本地构build解决scheme。 但是,它会消耗大量的空间磁盘,并且服务器上的每个不需要的应用程序都可能成为安全漏洞的来源。 在我的情况下最好的做法是什么?