Articles of 最佳实践

在Unix shell(ksh,bash)中编写并行启动脚本的最佳实践是什么?

我有一个运行在同一个Unix机器(Web服务器,DBMS,中间件,不同的守护进程)上的不同组件的软件。 less数组件的启动取决于以前的启动(如DBMS)的成功。 一些脚本可以在并行中运行。 有没有一种优雅的方法可以控制这种脚本依赖性,并且可以轻松使用并行机制来尽可能快地启动组件。 引导脚本的类似解决scheme由新贵http://upstart.ubuntu.com/覆盖,所以我正在寻找类似的东西,让我能够控制自己的子系统。

python和基于rails的web应用程序应该放在Linux文件系统中?

/等等? / SRV? /家? 这些语言的应用程序不应该在文件根目录下(在我看来,它是在/ srv / www下)。 但是,否则,我想不出一个最佳实践来存储它们的位置/scheme。 想法?

完整性检查与审计

在RHEL5安全指南中,build议使用AIDE来检查软件完整性。 并且还内置了RPM完整性检查function。 但是频繁的检查可能会对资源要求很高,而且很less有用处。 另一方面,关键部分的不断审计相对便宜。 它在一定程度上仍然保证完整性。 所以基本上我的问题是:在哪种情况下,完整性检查(AIDE,RPM或新的东西)比审计更好? UPD:只是澄清一点。 我所说的“审计”是指基于特定的auditd守护进程的RHEL审计服务。 它可以适当调整,不断监督文件和目录。 要失败一个完整性检查,文件应该以某种方式修改,这将由审计系统logging。 那么为什么还要考虑后果(比如校验和失败)呢,我们可以追溯这种修改的原因吗?

AWS弹性IP与VPC使用build议:build议?

我正在创build一套自我训练练习和指南(可能最终收集video或幻灯片演示文稿),涵盖一系列系统pipe理和“操作”相关主题。 我的计划是devise和演示,主要假设学生将创buildAWS账户,并使用EC2实例和一组有限的相关资源通过示例进行工作。 我build议学生创build一个基本实例,使用一些比较便宜的VPS提供程序(如Linode)作为他们大多数工作的“主基地”,然后在每个练习期间启动实例(大多数情况下为t1.micro)并在每次工作之后closures它们。 (目标是使这些学生可以为自己的职业教育提供资金,所以我会花费额外的努力来进行实践和练习会议devise,以最大限度地降低服务成本)。 该计划将主要针对CentOS,Debian,Ubuntu和FreeBSD使用免费的AWS Marketplace AMI。 (除非Amazon Inc.来赞助我的项目,否则最终我还会探索另类的云),尽pipe我可能会根据这些定制的AMI创build自定义AMI,并将其作为我的产品的一部分发布到Marketplace。 早期的课程将强调Python Boto的使用(这是我目前所熟悉的),并且我正在构build的一些工具将帮助pipe理每个学生创build的这个基础架构…而且我将让学生们使用Ansible大部分练习(用于会话build立和实例集合的拆除)。 一套课程将在木偶上,另一套将包括厨师。 大多数后来的课程(Hadoop,Cassandra,MongoDB,Zookeeper)将(需要/假设?),学生正在使用其中的一个build立群集。 最后,这让我想起了我的问题。 (为了散乱的序言而抱歉,但感觉有必要设定上下文)。 昨天晚上,我设置了最简单的木偶(第3版)configuration,可能对系统pipe理的学生有用。 一对CentOS 6.4实例,一个作为木偶大师,另一个作为客户端。 我使用丑陋的ec *。内部名称(在主机文件和configuration中)将它们连接在一起。 然后进行更改(在我的site.pp清单中创build用户,组和ssh密钥条目)并确认它们正在工作(在客户端上运行puppet agent –test命令)。 当然,最大的障碍是:更改安全组configuration,禁用默认的CentOS IPTablesconfiguration,禁用SELinux强制模式,以及dns_alt_names = master的/etc/puppet/puppet.conf中的dns_alt_names =指令。 (稍后我将介绍如何正确地授予必要的SELinux权限给Ruby / Apache / Passenger组件以重新启用SELinux)。 今天晚上,当我要离开的时候,我意识到自己真的需要稳定的IP和反向DNS来处理这个模型。 在每次工作开始之前,不得不重新configuration木偶大师并重新创buildPEM证书以及所有客户的PEM证书,这将比教育(以及对所有对任何正常的未来工作环境几乎没有适用性的脚本)更繁琐。 所以,呃,需要分配一个Elastic IP(至less一个),并要求一个反向的DNS条目…或者我需要重新devise我的假设,并将这些练习基于一套必备的VPC机顶盒,上课。 现在我刚刚设置了EIP并input了一个PTR覆盖请求(顺便说一句,这似乎是与一些STMP启用请求表格在亚马逊的工作stream程中混合)。 我正在寻找关于是否应该围绕VPC这样做的build议(并且至less在初始阶段至less要先假定在虚拟networking中build立一个DNS服务器,或许是在puppet本身上托pipe的),或者我是否应该build立一个或两个统称为弹性知识产权(可能后来延续到HAProxy或类似的前端,作为一个不同的练习迁移puppetmaster服务)。 build议? 批评?

在哪里把核心服务放在双节点集群中

我目前正在configuration基于CentOS和DRBD的双节点HA群集。 大多数服务都打包在有可用迁移的虚拟机中。 我还没有决定把核心服务放在哪里,如:dhcp,ldap,dns – 这对所有的networking基础设施都是至关重要的。 有两种可能性: 将其configuration为群集主机上的冗余HA服务。 将它们全部装入专用虚拟机。 最佳做法是什么?

将Server 2003 x64迁移到Server 2008 x64的最佳实践

我们有两个域控制器运行Windows Server 2003 R2 x64。 DC1具有FSMOangular色,DC2充当“辅助”DC。 两者都是全局编录服务器。 DC1安装了这些angular色:域控制器,DNS服务器,应用程序服务器(IIS),文件服务器和打印服务器。 DC2安装了这些angular色:域控制器,DNS服务器,应用程序服务器(IIS)和文件服务器。 这两个DC的当前域与位于相同位置的不同域之间也存在信任关系。 我们希望实现的目标是将两台服务器都升级到Windows Server 2008 R2,并在两台计算机上进行全新的安装过程,而不是从2003 R2到2008 R2的直接升级。 我正在寻找实现这一目标的最佳做法。 你能帮我理解实现这个目标的最好方法吗? 我必须先升级哪台服务器? 我如何保留每个angular色的所有设置和数据?

数据库服务器应该在哪里,它的更新脚本应该从哪里运行?

我目前有一个Web应用程序和数据库在同一台服务器上。 我正在将数据库移动到一个指定为数据库的新服务器上。 现在,我已经在Web应用程序上运行了每晚脚本,这些脚本为我们的ERP系统中的应用程序插入和更新数据。 执行此导入的脚本是否应该从数据库服务器或应用程序服务器运行? 把所有的应用程序逻辑放在一起是合理的,但是从性能的angular度来看,更有意义(我认为)让每晚更新数据库的脚本从实际的数据库服务器运行。 可能或不需要的问题,但我有一个网站,3个Web应用程序,都是从本地数据库安装转换到新的中央数据库。 最后一个问题应该是数据库服务器在DMZ中,但被locking为仅接受应用程序服务IP的连接,还是应该在防火墙之后? 其他信息,如果有帮助的话:Python应用程序(TG和Flask)全部使用postgresql 9运行 编辑:如果这是这个错误的地方,请让我知道它应该发布。 我原本是在程序员那里,但没有得到任何答复,在重新阅读我的问题后,这个网站感觉“更好”。

活动目录域命名

规划一个新的域名,我不断看到,最好的做法是在我们的公共注册域名的子域名后面命名森林/域名。 所以,如果我们公开拥有和使用company.com,我们应该使用ad.company.com为我们的AD DS域的效果。 我为此收集的原因是: 为了避免分裂angular色的DNS 为避免“www”访问www.company.com上公开托pipe的网站的要求。 但是,我看到的问题是,无论用户是现场还是非现场,连接到资源的方式都不相同。 所以,除非我错过了一些东西,当在局域网上连接到公共的“webapp-1”时,用户将使用webapp-1.ad.company.com,而在非现场时则是“webapp-1.company.com”。 大多数环境是否在路由器上使用头发定位,以便用户永远不要使用内部域来访问资源? 依靠search域名? pipe理拆分DNS不会打扰我,“www”不是一个大问题。 有人能把这些东西放在一起,解释我错过了什么吗? 我想我可以忽略一些显而易见的东西。

FTP服务器“networking礼仪”; 连接/传输/断开连接是否可以接受?

我的一些代码正在使用队列将file upload到FTP服务器。 当文件排队时,会进行连接尝试,如果成功,则会上传文件。 一旦队列为空,它将断开服务器的连接。 非常简单 该队列可以并且将被多个线程访问。 在某些情况下,队列完成,因此断开连接,但之后立即排队新文件,并启动一个新的Connection \ Upload循环。 在某些极端情况下,它只能在连接和断开连接之间上传一个文件 ,只能重复几分钟甚至几个小时。 我觉得这是不可接受的,会相应地改变代码,但我想知道: 题 假设我们会忽视时间和资源的明显浪费(至less可以说,所有这些dis /连接都是不必要的)。 FTP服务器是否介意? 这种行为是不是皱起了眉头呢? 它甚至可能被视为边界水淹或锤击某种?

什么是networking主机命名的行业标准和专业最佳实践?

可能重复: 计算机的命名约定 对于我来说,如何命名networking主机(路由器,服务器(同时一个服务器可以是一个路由器并同时托pipe多种服务),虚拟机(当它们承载重要的服务并且可以迁移时),工作站似乎是一个重要而困难的困境和笔记本电脑(使用电脑用户名不是最好的想法,因为用户可能会改变),打印机和MFU,监控IP摄像机等)。 有没有知道和接受这个任务的最佳实践? 对不起,如果这里有类似的问题(我想可能是这样),我还没有find。