我正在创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议? 批评?
您应该使用VPC,并且主机应该位于默认网关是VPC Internet网关的子网中。 有两种方法可以确保目标环境对所有下课的人都是一致的:
利用允许在启动时分配公共IP地址的新function,您仍然可以在没有EIP或跳转主机的情况下远程访问所有系统,而且还能够通过其静态内部VPC地址对系统进行寻址。
关于DNS,我相信启用DNS主机名function应该可以帮到你,但我还没有广泛使用它。