Articles of 自动化

什么是厨师的Windows相媲美?

什么是一个很好的自动化Windows服务器configuration的工具,一个在* NIX上的la Chef? 我知道厨师在Windows上有一定的工作,但是我确信还有其他人已经使用的function齐全的工具。

我如何自动化GUI应用程序?

我需要自动化一个小的GUI Windows应用程序。 它需要每周运行两次来同步两个数据库,但没有运营商的智慧。 从字面上看,它是启动应用程序,并执行两个button点击,并忘记。 我已经看过ClickOK,但是我发现它的单一评论不是很有利。 那里有什么更好的吗?

如何自动创build虚拟机?

我的公司在一个项目上工作,我们运行一个运行多个服务的设备(CentOS VM)。 目前这个设备每次都是“手动”重新生成的,但是我想通过自动化大部分工具来改善这个过程,减less错误的发生。 是否有可能自动创build一个虚拟机(可能使用VMWare)? 如果是这样,这个自动化程度如何,我需要使用什么工具来做到这一点?

只限制SSH密钥给SCP

问题: 我没有对服务器的根访问权限(即,我不能/不想更改任何系统.ssh/id_rsa_for_scp服务器configuration),并且我希望使用带有备用身份文件的scp(例如, .ssh/id_rsa_for_scp )来自动从服务器上下载一些文件,但我不希望使用相同的密钥通过ssh访问服务器。

OpenSolaris可以用作新项目的Solaris 11预览版吗?

我目前正在开发一个Java EE应用程序,这个应用程序可能在Glassfish v2.1应用程序服务器和PostgreSQL 8.4上运行。 由于我们目前的人力资源非常短(只有我),我正在寻找生产平台解决scheme,要求尽可能less的维护,以实现高可靠性和可用性。 解决scheme还应该能够在没有任何地球震惊的情况下以小步骤缩放进化。 所以它应该是一个同类操作系统的格局(即只有一个操作系统)。 所select的操作系统不应该被要求尽可能地改变。 这就是为什么应该支持很长一段时间,操作系统也应该能够在高端硬件上运行,以后需要更可靠的硬件(例如Sparc或Power CPU等)。 我有一些小的Linux技能 – 但只能够照顾我的开发者盒子。 所以我将不得不从头开始学习几乎所有的东西,而且我也不必成为一个全能的pipe理向导 – 我只需要设置和维护这个特定设备的技能,比如自攻设置。 这就是为什么我想selectSolaris作为操作系统。 由于Solaris 10已经有四年的历史了,Solaris 11被传闻将于2010年中期发布,而且我们软件的第一个版本计划在2010年春季发布,所以Solaris 11可能比Solaris 10更有趣:这样我就不会有无论何时都要从10到11迁移,并且已经可以在任何脚本和安assembly置中使用Solaris 11function。 Sun声称,下一个Solaris版本将来自OpenSolaris 2009.6和2010.2,所以只要Solaris 11不可用,我就可以使用OpenSolaris,因为OpenSolaris似乎已经相当成熟并经过testing,而且当时我们的JEE应用程序还不够成熟无论如何。 我剩下的问题(和孙明显不会也不能回答,因为它是一个猜谜游戏)是: 你认为Opensolaris 2009.6及更高版本也可以被认为是相当先进的Solaris 11 Beta版本吗? 那么它与Fedora Core 6和RHEL 5的关系是一样的吗? 即几乎所有的Opensolarisfunction也将包含在第一个Solaris 11发行版中? 或者,将所有的脚本从OpenSolaris 2010.2迁移到Solaris 11时都会中断,因为Opensolaris 2010.2中的function将不包含在Solaris 11中,例如ZFSencryption等。 我打算开发一个带有安装服务器的OpenSolaris自动化安装系统,并将客户机安装在VirtualBox机器中用于testing目的,之后再安装一个或多个使用此过程安装的生产用专用服务器。 你猜这个设置将会破坏Solaris 11吗?

尾-f,然后退出匹配的string

我想configuration一个启动脚本,它将启动tomcat,监视string“Server startup”的catalina.out,然后运行另一个进程。 我一直在尝试tail -f与grep和awk的各种组合,但还没有任何工作。 我遇到的主要问题似乎是在grep或awk匹配string后迫使尾部死亡。 我简化了下面的testing用例。 test.sh is listed below: #!/bin/sh rm -f child.out ./child.sh > child.out & tail -f child.out | grep -q B child.sh is listed below: #!/bin/sh echo A sleep 20 echo B echo C sleep 40 echo D 我看到的行为是,grep在20秒后退出,但是尾巴会再花40秒死亡。 我明白为什么会发生这种情况 – tail只会注意到,在写入数据的时候pipe道已经不存在了,只有当数据被附加到文件时才会发生。 这是由尾巴是缓冲数据和输出B和C字符作为一个单一的写(我证实了这一点)的事实复合。 我试图用我在其他地方find的解决scheme来解决这个问题,例如使用unbuffer命令,但是这并没有帮助。 任何人有什么想法如何得到这个工作,我期望吗? 或者等待成功的Tomcat开始的想法(考虑等待TCP端口知道它已经开始,但是怀疑这会变得更复杂,现在我正在尝试做)。 我已经设法让awk在比赛中做“killall tail”,但是我对这个解决scheme并不满意。 注意我试图让这个在RHEL4上工作。

按名称查找进程并杀死它

所以,我想发送一个杀死进程,我知道这是一个名字 ps -ef | grep '_rails master' root 2388 1 0 19:46 ? 00:00:04 unicorn_rails master -c /web/hero/config/unicorn.rb -E production -D root 2582 2172 0 20:28 pts/0 00:00:00 grep –color=auto _rails master 这是unicorn_rails主[..]我怎么杀了它? 我到目前为止试过: sed和expr 。 但不能通过它参数杀死

如何处理Linux服务器的初始安装?

在过去的几个星期里,我发现我的Linux系统pipe理员技能很低,所以我买了更大的硬盘(1.5TB),开始玩虚拟机。 我正在尝试相当困难的方式,所以我最终重新安装了很多。 我的问题是,我真的不知道, 做初始设置的最好方法是什么 。 我的第一个想法是创build一个简单的bash脚本,它将安装所有必要的软件包,编译源代码,设置帐户等。但是我的问题是,它通常被卡在中间某处,因为有一些变化或问题,所以我有无论如何手动破解它。 而且这样的脚本将会过时很快。 我现在正在尝试的另一个想法是编写一个清单,包含我需要做的事情,然后手动安装所有东西并在纸上检查事情。 这有更多的通用步骤(如安装MySQL)的优势,但是我必须做一切手动,这是不是很方便。 最后的选项是安装一个完整的系统manualy,configuration它,然后创build一个分区的映像,并最终恢复它,而不是干净的instalation。 虽然这在我看来似乎是一次性安装20台服务器的很好的解决scheme,但它也很快就会过时,所以我不得不创build新的,最新的干净安装并再次创build它的映像。 我知道不同的情况适用不同的措施,所以可能没有一个合适的解决scheme。 所以我的问题是。 当你安装一个新的系统时,你有任何一种清单,安装脚本或任何types的东西吗?

切换到.net 4.0后IIS7中的“服务器应用程序不可用”

我们最近升级到.Net 4.0,并为我们的应用程序编写了一个自定义的部署脚本,它使用Microsoft.Web.Administration库来执行诸如创build网站和设置应用程序池之类的事情。 我们开始testing开发者框中的代码,它似乎工作。 然后我们注意到,如果开发者重新构build应用程序,它将停止运行,IIS7会给我们这个(实际上是无用的)错误信息: 服务器应用程序不可用 您尝试在此Web服务器上访问的Web应用程序当前不可用。 请点击网页浏览器中的“刷新”button重试您的请求。 pipe理员注意:可以在Web服务器的应用程序事件日志中find详细描述此特定请求失败原因的错误消息。 请查看此日志条目,以发现导致此错误发生的原因。 如果我们手动回收应用程序池,应用程序将立即启动。 我们在应用程序日志中看不到任何事件或错误。 该池设置为自动启动并在configuration更改时回收。 我们已经尝试了应用程序池,应用程序和ASP.net设置中的各种设置组合。 我们已经尝试以不同的用户帐户运行应用程序池。 我们尝试删除应用程序池和应用程序,并通过用户界面手动重新创build,问题仍然存在。 这就好像使用Microsoft.Web.Administration库毒害机器,所以它永远不会自动重新启动应用程序池? 我们将不胜感激任何见解或debuggingbuild议。 我们不能在任何生产系统上运行这个,直到我们明白是什么导致了这种情况发生。

是否有可能告诉我login到哪些机器(但是从中断开)?

我很less在大约20台Windows服务器上通过远程桌面工作。 有些时候,我知道是否以及在哪里断开了连接的会话,真的很方便。 是否有PowerShell脚本或查询或我可以用来使这个过程比login到每台机器和检查任务pipe理器的用户选项卡更简单?