我正在通过一般的配置管理学习我的方法,特别是使用puppet来实现它,我想知道系统的哪些方面(如果有的话)不应该用 puppet 管理?
例如,在将系统借给 puppet 的管理之前,我们通常认为主机名已经设置是理所当然的。基本的 IP 连接,至少在用于联系 puppetmaster 的网络上,必须正常工作。使用 puppet 自动创建 dns 区域文件很诱人,但 DNS 反向指针应该在启动之前就已经到位,否则证书会很有趣。
那么我应该从 puppet 中省略 IP 配置吗?或者我应该在第一次启动 puppet 之前设置它但仍然使用 puppet 管理 IP 地址?具有多个 IP 的系统(例如,用于 WAN、LAN 和 SAN)会怎样?
IPMI怎么样?您可以使用ipmitool配置大部分(如果不是全部),从而避免获得控制台访问(物理、串行网络、远程 KVM 等),因此可以使用 puppet 进行自动化。但是在每次 puppet agent 运行时重新检查它的状态对我来说听起来并不酷,而且在做任何其他事情之前我希望对系统进行基本的熄灯访问。
另一个完整的故事是关于安装更新。我不打算讨论这个具体问题,已经有很多关于 SF 的问题以及不同系统管理员之间的许多不同哲学。我自己,我决定不让傀儡更新的东西(如只ensure => installed),并因为我们已经习惯了做手工更新,离开这个任务的自动化到以后的一天,当我们与木偶(如更加自信。通过增加MCollective到混合)。
这些只是我现在想到的几个例子。系统的任何方面是否应该被人偶接触到?或者,换一种说法,应该在配置时设置什么和系统中“静态”配置的内容与通过集中配置管理处理的内容之间的界限在哪里?
我正在寻找通过 SSH 调用远程命令的最佳方式。我创建用户“rpcall”,生成新证书并填写authorized_keys。用它多一点保护它
from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
Run Code Online (Sandbox Code Playgroud)
现在用户 rpcall 无法登录到终端
ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
Run Code Online (Sandbox Code Playgroud)
但可以运行任何命令
ssh -l rpc 192.168.12.1 cat /etc/passwd
Run Code Online (Sandbox Code Playgroud)
是否有任何解决方案可以将命令执行限制为一个处理脚本?例如/home/rpcall/bin/command.sh
我为这个用户设置了 bash shell 并使用 .bashrc 强制运行处理脚本,但我不知道如何从 ssh 调用传递参数。
.bashrc 用户 rpcall
/home/rpcall/bin/command.sh $params1 $params2
exit
Run Code Online (Sandbox Code Playgroud)
来自其他机器的 ssh 调用
ssh -l rpcall 192.168.12.1 "param1" "param2"
Run Code Online (Sandbox Code Playgroud) 该NTP如果经常在其最简单的模式,这是客户端/服务器守护程序使用:您指定一个或多个server的指令您ntp.conf和您的客户将使用这些服务器。
除此之外,当您运行自己的 NTP 服务器时,将peer它们放在一起是一种很好的做法,因此如果其中一个与上游服务器的连接断开,它将从对等方那里获得时间。
但是 NTPd 也可以处理时间数据的广播和/或多播分发,文档说明:
广播和多播模式适用于涉及一台或几台服务器以及可能非常庞大的客户群的配置
文档还在别处说:
将主机配置为广播客户端和广播服务器是可能的并且经常有用。以这种方式配置并共享公共广播地址的许多主机将根据层和同步距离自动以最佳配置组织自己。
我可以看到一个明显的管理好处:您不必手动指定和更新客户端中的 NTP 服务器列表ntp.conf,因此对我而言,即使对于小客户群(例如 5 个以上的客户端,3 个客户端),使用广播模式看起来也很诱人约 4 台服务器)。我希望广播而不是客户端/服务器关联的网络流量会高一点,但考虑到通常的千兆以太网 LAN,除非在同一广播域中有非常多的主机,否则影响应该可以忽略不计。
归根结底,什么时候应该使用或避免广播模式?有我没见过的优点和缺点吗?
我不是LXC专家,但据我所知,它与linux-vserver非常相似。
如果这是正确的,我想知道为什么在已经拥挤的虚拟化阵营中还有另一个玩家?LXC 提供(或承诺)什么是 linux-vserver 没有的?
我是 linux-vserver 的长期用户,我记得大约在很多年前,在所有这些虚拟化炒作之前。最近开发速度放缓,但从未完全停止 - 我知道是因为开发人员帮助我将其恢复到 linux/hppa 上的有用状态(至少在 Gentoo 中)。他们定期推出针对最新内核的补丁,使用所有最新的好东西(LXC 使用的相同容器基础架构),甚至与 GRsecurity 集成。
开始 LXC 工作的人可能有充分的理由这样做,而不是加入已经完善的 linux-vserver 基础?那我想知道。
这都是关于主线集成的吗?那么为什么不采用 linux-vserver 进行集成,就像 Xen 人对 XenLinux 所做的那样?
我正在通过一般的配置管理学习我的方法,特别是使用puppet来实现它。我已经做了一些通用研究(也在 SF 上),现在我正在考虑 Apache VirtualHosts。
我们在两个系统上托管了许多LAMP网站(目前在数百个范围内):一个Apache2 / mod_php一个和一个MySQL一个 - 基本上与SF上已经存在的另一个问题相反,他管理许多服务器,每个服务器都有很少的虚拟主机(如果实际上不是一个,我不知道)。我还没有在 puppet 中组合一个工作配置,但这应该不是问题,那里有很多 例子和食谱。
除了明显的 apache 配置文件(我猜这里没问题)每个 vhost 都需要创建一些目录并检查权限(例如,每个 vhost 的根目录包含一个 documentroot、一个专用的 tmp 目录、一个专用的php 会话文件目录,可能是 SSL 证书等)在网络服务器上,以及一个用户 + 一个或多个 MySQL 服务器上的数据库。
添加一个新的虚拟主机需要 puppet 来创建它们,删除一个需要 puppet 运行一些脚本来备份用户数据,然后从两台服务器中删除实时数据,而且每个 puppet 代理运行都会检查是否存在目录、数据库、权限等。
在每次运行 puppet 时都会运行所有这些检查,尤其是文件系统的检查(在网络服务器上),尤其是在将来系统会加载更多时,我是否会在增加数百个虚拟主机时遇到麻烦?(假设我们将 1000 到 2000 个网站范围作为每个服务器的合理最大值)。
有没有在网上这样做的经验?我用谷歌搜索但什么也没找到,也是因为在搜索“puppet”和“apache”时信噪比很低......
我正在现场为当前使用 Cacti 的许多系统收集 SNMP 数据。这些系统分布在许多并不总是连接到互联网的站点上,但我还需要将数据集中在单个系统(数据中心托管服务器)上并从中获取图表。
如果我使用集中式 Cacti 直接轮询远程系统,我会在站点未连接到 Internet 时丢失数据。我应该在现场记录数据(我在每个站点都有一个服务器,我可以在上面运行我想要的任何东西),然后将所有内容“同步”到中央系统。
一个 hack 可以是 cacti 或直接rrdtool在现场,然后定期将rsyncRRD 数据发送到中央 Cacti 系统,但这听起来不像是一个“干净”的解决方案:每个 RRD 都必须在两个地方定义,并rsync使用特定的文件名。
你能提出更好的解决方案吗?Cacti 不是必需的,但我想在中央系统上使用类似的东西。现场系统只需要收集数据我不需要在那里绘制数据或管理用户查看数据的权限等等,用户只会访问集中式系统。
那里有很多黑名单,名声不好也好。此外,有些人建议仅在基于分数的系统(如spamassassin)中使用 RBL 列表,而其他人(包括商业服务提供商,认为Barracuda)甚至在查看之前广泛使用列表来硬阻止消息。
使用 RBL 列表直接丢弃消息的问题来自误报,否则 99% 的时间会在基于分数的系统中幸存下来。我想知道是否有可以在队列前充分利用的列表,即使它们在捕获真正的垃圾邮件方面可能不太有效,但误报率非常低。此类列表与灰名单相结合,可以很好地在通过内容分析系统运行之前浏览邮件摄入量的很大一部分。
我们目前仅使用Abuseat 的 CBL来阻止 SMTP 连接,我们不知道由此引入的任何误报。Spamhaus 项目中的列表看起来也很有前景,但哪些列表呢?还是全部(比如使用 ZEN)?
我正在评估使用两台现成服务器来构建廉价 iSCSI 冗余 SAN 的可能性。这个想法是运行 linux、pacemaker 和 iSCSI 目标——类似于linux-ha-examples 上的SAN Active-Passive。
当我阅读时,同一页让我有点害怕:
在 iscsi-target 的切换过程中,可以检测到 write-test.log 协议中的一个间隙。在我们的设置中,我们观察到了 30 秒的延迟。存在与 ext3 和 iSCSI 故障转移有关的问题报告 此配置已在 ext2 和 ext3 上进行了测试,并且适用于两个文件系统。
有没有人将一个由 linux 盒子制成的冗余 iSCSI SAN 投入生产?故障转移事件真的那么糟糕吗?I/O 中的 30 秒冻结对我来说听起来像是一场灾难,不是吗?
我使用的是Ubuntu 12.04 LTS 服务器版本,我正在修改/etc/udev/rules.d/70-persistent-net.rules以定义我自己的以太网接口到 MAC 地址的映射;该文件最初是由/lib/udev/rules.d/75-persistent-net-generator.rules系统安装时的规则生成的(或在第一次启动时,我实际上不知道,这里也无关紧要)。
我如何确保我编辑过的版本永远不会被任何东西覆盖?
正如某些网站上所建议的那样,删除持久网络生成器并不是正确的做法™,正如文件本身中的注释所说:它会被udev包的任何更新覆盖。我正在寻找一种更正式的正确方法来禁用它。
仅仅确保它/etc/udev/rules.d/70-persistent-net.rules确实存在就足够了吗?也许还有其他事件可以触发它的再生?(例如,向系统添加或删除以太网接口?)
是否可以在相同版本(6.5 或 6.7)的多个 VMware集群之间共享相同的数据存储?
在同一集群中的多个主机之间共享数据存储是一种常态(vSphere HA 需要这样做),但我指的是多个独立的集群,每个集群都有自己的节点和 vCenter。
通过“共享”,我的意思是让两个集群都使用虚拟机积极处理数据存储,可能还有用于 HA 的数据存储心跳。单个 VM 将仅位于一个集群清单中,但在同一个数据存储中可能会混合来自两个(或可能更多?)集群的 VM。
我的问题特意是通用的,但如果您需要一个具体的例子,请考虑两个 Essential Plus 集群,每个集群中的三个节点,它们都通过 iSCSI 连接到相同的 LUN。提出这个问题的原因是为了避免将可用 SAN 空间硬分割成两部分,每个集群一个,如果一个 LUN/数据存储变为全白,另一个仍然有可用空间,则无法“重新平衡”存储。
linux ×4
puppet ×2
apache-2.2 ×1
blacklist ×1
cacti ×1
cluster ×1
containers ×1
email ×1
exec ×1
failover ×1
iscsi ×1
lxc ×1
networking ×1
ntp ×1
rbl ×1
remote ×1
rrdtool ×1
snmp ×1
spam ×1
ssh ×1
ubuntu ×1
udev ×1
virtualhost ×1
vmware-esxi ×1