小编030*_*030的帖子

将 AWS 凭证安全地存储在个人计算机上

如何在个人计算机上安全地存储 AWS 凭证?

详细:

我们团队中的每个人都需要 AWS 安全凭证来执行管理任务(凭证按角色分开)。这些凭据通常以明文形式存储在磁盘上的某些配置文件中。我认为这是非常不安全的,特别是考虑到凭据分布在团队成员之间,最终以备份方式结束等。

我更喜欢以加密形式存储这些凭据(例如,类似于 ssh 密钥)。有没有一些自动化的方式这样做?或者我是否需要修改一些使用例如 openssl 来加密数据的 bash 脚本?

网络上有很多关于如何保护 EC2 实例上的凭证的信息。甚至还有此Amazon IAM 角色功能,但它也仅适用于 EC2。

security linux credentials amazon-web-services

12
推荐指数
1
解决办法
2917
查看次数

如何判断系统是因为网络唤醒 (WoL) 还是因为电源按钮启动?

在 Windows 10 中,我想知道如何在脚本中判断系统启动是因为它是通过接收 Wake-on-LAN (WoL) 数据包打开的,还是因为按下电源按钮而打开.

我确实找到了Win32_ComputerSystem类的 WakeUpType 属性。这被记录为返回“导致系统启动的事件”。有 9 个可能的返回值,其中之一是“5”(意思是“LAN 远程”)。

不幸的是,在我的系统上,它似乎总是返回“6”(意思是“电源开关”):

PS C:\WINDOWS\system32> echo $(Get-WmiObject -class win32_computersystem).wakeuptype
6
Run Code Online (Sandbox Code Playgroud)

我注意到在使系统进入睡眠状态并使用 WoL 唤醒它后,Windows 会在系统事件日志中发布一个事件,其中包含源“Power-Troubleshooter”和事件 ID 1,其中包含文本:

唤醒源:设备 -Intel(R) 82579V 千兆网络连接

此外,powercfg /lastwake报告 NIC 作为唤醒的原因。因此,至少在从睡眠状态唤醒时,Windows 能够确定它是由于 WoL 数据包而唤醒的,即使在这种情况下 WakeUpType 属性仍然返回“6”(电源开关)。

不幸的是,当系统在 S5 状态下接收到 WoL 数据包时,它会正常启动并启动,但我无法判断它是因为 WoL 启动的。powercfg /lastwake由于按下电源按钮,显示与系统从 S5 启动时完全相同的输出:

C:\WINDOWS\system32>powercfg /lastwake
Wake History Count - 0
Run Code Online (Sandbox Code Playgroud)

我如何从任何电源状态(直到 S5)可靠地判断系统是否因为 WoL 启动/唤醒?

wake-on-lan windows-10

12
推荐指数
1
解决办法
3121
查看次数

裸机还是虚拟化?

我正在寻找升级服务器并试图找出一个好的计划。

我们目前有4台服务器:

  1. OpenBSD 防火墙/VPN 服务器
  2. 接收 ZFS 快照的 FreeNAS 备份服务器(本地)
  3. 接收 ZFS 快照的 FreeNAS 备份服务器(远程)
  4. 下面的主力 FreeBSD 服务器。

FreeBSD 服务器

~2010 FreeBSD 8.4,32gb 内存,双 Xeon E5520 ZFS(8 个磁盘,镜像对中的 zraid 磁盘,8TB)

服务:

  • 桑巴舞
  • Netatalk(苹果文件共享)
  • Apache(主要是内部的,一些面向外部的站点)
  • MySQL
  • VirtualBox(Windows 2k3 实例)
  • ZFS 快照

我的计划(基本)

我计划进行服务器升级,让我们从一台主服务器切换到两台服务器,每台服务器都会承担上面列表中的一些服务器职责(并相互复制),这样如果一台服务器出现故障,我可以快速激活第二个的所有功能。就像是:

服务器 1:

  • 桑巴舞
  • Netatalk(苹果文件共享)
  • VirtualBox(Windows 2k3 实例)
  • ZFS 快照

服务器 2:

  • Apache(主要是内部的,一些面向外部的站点)
  • MySQL
  • ZFS 快照

我只运行过裸机,除了在 VirtualBox 上运行 Windows 2k3 之外,我没有使用 VM 的经验。我应该将我的服务器实例作为虚拟机运行吗?我认为这可能会使从崩溃中恢复更容易。总的来说,这看起来是一个好计划吗?

我一直在研究 ixSystems 服务器和戴尔机架硬件,如果这有什么不同的话。(我也从未使用过任何机架安装设备。)

virtualization freebsd upgrade bare-metal

12
推荐指数
1
解决办法
1526
查看次数

Puppet 代理证书验证失败

我设置了一个 Puppet Master/Agent,并且已经成功地为 master 上的 agent 签署了证书。但是,当我运行时,puppet agent --test我遇到了如下所示的失败:

Warning: Unable to fetch my node definition, but the agent run will continue:  
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Info: Retrieving plugin  
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Error: /File[/var/lib/puppet/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3 read server …
Run Code Online (Sandbox Code Playgroud)

ssl debian puppet puppetmaster puppet-agent

11
推荐指数
2
解决办法
4万
查看次数

一旦 Puppet-dashboard 或 PuppetDB 处理了 Puppet-reports,是否可以删除这些报告?

Puppet-reports 在以下位置使用了大量磁盘空间:

/var/lib/puppet/reports
/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

假设它将所有报告存储在 MySQL 数据库中,因为两个路径的大小大致相同。该resource_statuses表由行的每个代表在报告文件中的行。

  • 在 Puppet-dashboard 或 PuppetDB 处理完 /var/lib/puppet/reports 中的报告后,是否可以安全地删除它们?
  • 处理报告的最佳做法是什么?
  • 有没有办法让Puppet-dashboard 在处理完yaml报告文件后自动删除它们?

disk-space-utilization puppet puppet-dashboard puppetdb

11
推荐指数
1
解决办法
9896
查看次数

如何在Ansible中复制除一个之外的所有孩子?

文档解释了如何使用copyAnsible 中的模块复制文件和目录。如何复制除一个之外的所有孩子?

讨论

  1. 这些选项没有说明如何做到这一点。
  2. 单独复制所有子项不是一种选择,因为父项包含 100 多个子项。

ansible

11
推荐指数
2
解决办法
1万
查看次数

在 Docker swarm 模式下使用私有物理网络

我正在使用 Docker 以 swarm 模式(使用 Docker 17.03.1-ce)进行生产设置。将涉及2个数据中心。在两个数据中心,所有机器在私有网络上都有一个公共 IP 和一个私有(数据中心本地)IP,所以会有 2 个私有网络。

链接到简化的图表可视化设置

专用网络接口上的网络流量是免费的,而公共接口上的流量不受限制(而且速度较慢),因此在可能的情况下,我更希望网络流量通过专用接口。

现在,据我所知(我认为),集群模式下 Docker 节点之间的所有流量都将通过用于与集群主机通信的相同网络接口,在我的情况下,必须是公共接口才能进行多 DC 网络可能的。然而,大多数预期的流量将在同一个 DC 中的节点之间发生,如果源节点和目标节点碰巧在同一个私有网络上,如果 Docker 能够以某种方式通过我的私有网络路由流量,那就太好了。

恐怕这可能无法开箱即用,因为群主不知道这些专用网络以及节点在其上拥有的 IP。

我能想到的一个解决方案是设置一个 VPN 并在其上部署 swarm,但这会增加额外的复杂性,我更喜欢纯 Docker swarm 解决方案。


更新:正如评论中所建议的,解决方案的基础可能是使用 iptables 将传出流量路由到私有 IP 而不是公共 IP。但是,如果我想这样做,我的下一个问题将是如何管理所有这些规则。在 DC 中有 10 个服务器,我需要 10 * 9 = 90 个服务器来通过专用网络路由所有可能的本地流量。我可以想象,也许存在一些工具可以帮助完成这样的任务,或者我可以创建一个,但也许有一种更简单的方法来做到这一点。

networking docker docker-swarm

11
推荐指数
1
解决办法
849
查看次数

为什么远程执行Ansible时会出现“[Errno 2] No such file or directory”、“rc”的问题?

跑步:

- name: get vhosts
  command: rabbitmqctl list_vhosts
  register: vhosts
  changed_when: false
Run Code Online (Sandbox Code Playgroud)

通过发行

sudo ansible-playbook file.yml
Run Code Online (Sandbox Code Playgroud)

结果是:

TASK [030.sensu : get vhosts] **************************************************
fatal: [IP]: FAILED! => {"changed": false, "cmd": "rabbitmqctl list_vhosts", 
"failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}
Run Code Online (Sandbox Code Playgroud)

如果 ansible 在系统本身上运行,则不会发生此错误。


讨论

1. 是否rc缺少命令?

rc以远程方式在本地发出两者会导致:

bash: rc: command not found...
Run Code Online (Sandbox Code Playgroud)

如果这是一个问题,那么在本地运行剧本也会失败。


2. 这是一个已知问题吗?

"No such file or directory" rc ansible centos在互联网上查询导致了这个问答

根据其中一个答案,该问题是由command. 使用shell …

ansible ansible-playbook

10
推荐指数
1
解决办法
4万
查看次数

使用 ISO 预加载 docker 映像以进行重新分发

我们正在开发一个应用程序,该应用程序将在现场部署到各种安装(不是云)。我们的 OEM 合作伙伴要求我们为他们提供 ISO,以便能够快速配置新服务器。我们的应用程序是围绕容器构建的,我们有一个面向互联网的私有注册表设置,能够提取最新的通过构建。我还不确定 OEM 合作伙伴是否能够自己拉取这些映像,因此我们正在研究将 docker 映像与 ISO 一起预打包的可能性,但遇到了一些困难。我们尝试过的一些事情:

  1. systemback - 我们尝试使用我们的首选设置(由我们拥有的 ansible 角色定义)配置新的 ubuntu 安装,然后使用 systemback 捕获结果。重新安装生成的 ISO 后,我们遇到了 docker 错误:Error response from daemon: open /var/lib/docker/aufs/layers/blahblahblah: no such file or directory类似于#22343

  2. chroot jail - 我们再次尝试创建我们的用户,安装 docker,但是在尝试拉取我们的镜像时,我们会遇到:failed to register layer: Error processing tar file(exit status 1): invalid argument不管我们拉的是什么镜像(甚至是官方的 docker ubuntu 镜像,例如)。谷歌对这个错误没有帮助。

  3. RancherOS - 在这里我们找到了打包 docker 镜像的说明,但没有找到如何将它们与 iso 捆绑在一起。看起来我们的用例与#1449相同,但没有真正的解决方案。

现在我能想到的下一步就是尝试docker save我们的图像并包含带有 ISO 的 tarball,然后在第一次启动 iso 时运行一个脚本来检查 …

deployment iso docker

10
推荐指数
1
解决办法
1437
查看次数

如何禁用每 30 分钟发生一次的自动计划 Puppet 运行?

目的

目的是禁用每 30 分钟发生一次的自动 Puppet-agent 运行。可以更改时间间隔,但应完全禁用自动 Puppet-agent 运行。


尝试一

根据本文档,应该可以通过配置以下内容来禁用自动 Puppet-agent 运行:

/etc/puppet/puppet.conf

[agent]
daemonize=false
Run Code Online (Sandbox Code Playgroud)

结果是

Notice: Run of Puppet configuration client already in progress; 
skipping  (/var/lib/puppet/state/agent_catalog_run.lock exists)
Run Code Online (Sandbox Code Playgroud)

如果以 30 分钟的默认运行间隔手动运行 puppet。


尝试二

user@hostname:~$ sudo puppet agent --disable
Run Code Online (Sandbox Code Playgroud)

结果是

user@hostname:~$ sudo puppet agent -t
Notice: Skipping run of Puppet configuration client; 
administratively disabled (Reason: 'reason not specified');
Use 'puppet agent --enable' to re-enable.
Run Code Online (Sandbox Code Playgroud)

尝试三

这个文档是在谷歌搜索这个问答的问题后找到的,但提供的信息没有回答这个问题。

puppet-agent

9
推荐指数
2
解决办法
3万
查看次数