我将把 Ansible 引入我的数据中心,我正在寻找一些关于在何处定位控制机器以及如何管理 SSH 密钥的安全最佳实践。
问题一:控制机
我们当然需要一台控制机器。控制机器上保存了公共 SSH 密钥。如果攻击者可以访问控制机器,它就有可能访问整个数据中心(或 Ansible 管理的服务器)。那么数据中心有专用控制机好还是远程控制机好(比如我的笔记本电脑远程连接数据中心)?
如果最佳做法是使用我的笔记本电脑(当然,它可能会被盗,但我可以将我的公钥安全地在线保存在云中或离线保存在便携式加密设备上),如果我需要使用一些 Web 界面,该怎么办? Ansible,像 Ansible Tower、Semaphore、Rundeck 或 Foreman,需要安装在数据中心的中央机器上?如何保护它并避免它成为“单点攻击”?
问题 2:SSH 密钥
假设我需要使用 Ansible 来制作一些需要由 root 执行的任务(比如安装软件包或类似的东西)。我认为最好的做法是不要在受控服务器上使用 root 用户,而是为 Ansible 添加一个具有 sudo 权限的普通用户。但是,如果 Ansible 需要执行几乎所有任务,则它需要通过 sudo 访问每个命令。那么,最好的选择是什么:
~/.ssh/authorized_keys在 Windows 2019 服务器上,驱动器 D: 100% 已满(使用 500 Gb):
我试图了解为什么磁盘已满,但我不能,因为文件资源管理器和 Total Commander 报告使用的数据不超过 33 Gb:
同样奇怪的是,WinDirStat 在开始摘要中报告使用了 100% (500 Gb),但在分析后仅使用了33 Gb:
请注意:
我找到了 33 Gb 的数据。其他 467 Gb 在哪里?
我正在评估 Redis 3 的集群功能(我目前正在独立使用 Redis 2),所以我正在阅读http://redis.io/topics/cluster-tutorial 上的信息。
在这份文件中,我读到了一个非常重要的信息:
请注意,按预期工作的最小集群需要包含至少三个主节点。对于您的第一次测试,强烈建议启动一个具有三个主节点和三个从节点的六节点集群。
真的吗?在我看来,如果我使用分片功能(数据在节点之间共享),这是正确的,但是如果我不需要它并且我很高兴只在一个节点上拥有数据怎么办?
我基本上需要一个主站和两个从站(所以如果一个节点出现故障,集群将处于活动状态),我可以在生产环境中进行这种配置吗?如果是,禁忌症是什么?
非常感谢您的帮助!
在生产集群架构的 mongoDB 文档中,我读到运行的生产 mongoDB 集群的最小服务器数量是 7:
是否可以在同一台服务器上共享路由器、配置服务器和分片(总共有 3 个服务器,每个服务器都有一个路由器、配置和分片服务)?
我使用 Redis 有一段时间了,现在我们想迁移到一个容错、高可用和负载均衡的冗余集群。
我主要将 Redis 用于一些存储一些进程状态信息的 PHP Web 应用程序(我为此使用 PHPRedis),我也想将它用于负载平衡集群中的 PHP 会话存储。
我已经有一个用于 Nginx 和 MySQL 的负载平衡(基于 pfSense)。
我看到 Redis 集群存在于 Redis 3,但我也阅读了一些关于它尚未准备好用于生产这一事实的评论,其他评论则表明 Redis 无法进行完整的主/主集群配置。
你的建议是什么?
非常感谢您的帮助!
在我的基础设施中,我有一个 SQL Server 2014 Standard 独立服务器。
随着使用 SQL Server 的数据库和应用程序不断增长,我想升级到 SQL Server 2016 Standard 并安装两个节点以获得高度可用的 SQL Server 基础架构。
我知道我可以创建一个 SQL Server 故障转移集群,但我需要一些共享存储,这可能不是问题,因为我有一个生产 NAS/SAN 可用,但它非常慢,因为它用于数据目的而不是用于应用程序目的.
由于我的虚拟化节点有一些快速的 SSD 本地存储,我希望使用它们来托管 SQL Server 数据,所以我想知道是否有一种方法可以在没有共享存储的情况下构建 SQL Server HA 集群,但进行主从复制在他们自己的本地存储上的两个节点之间,就像我已经在使用 MariaDB Galera Cluster 为 MariaDB 所做的那样。
我还有一个可用的 HAProxy。
谢谢!!
在运行Debian Stretch的服务器上,我使用802.3ad 模式配置了一个bond0,如下所示:
auto bond0
iface bond0 inet manual
slaves eth0 eth2
bond_miimon 100
bond_mode 802.3ad
Run Code Online (Sandbox Code Playgroud)
在bond0接口启动并运行,但它的工作与负载平衡(循环)模式:
root@servir01:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: e4:1f:13:65:f0:c4
Slave queue …Run Code Online (Sandbox Code Playgroud) 我需要在三个节点上部署MinIO基础设施,其中每个节点都有一个可以保存文件的本地目录。
我阅读了MinIO 纠删码快速入门指南,但我不需要 MinIO 来管理不同本地驱动器上的数据复制,因为所有三个节点都位于独立硬件上的独立虚拟机上,并且本地存储已受 ZFS 保护。
因此,我仅 MinIO 在节点之间复制数据,创建每个文件的三个副本,但是当我尝试使用单个数据目录启动它时,它会失败:
minio@storage3:/usr/local/bin$ export MINIO_ACCESS_KEY=foo
minio@storage3:/usr/local/bin$ export MINIO_SECRET_KEY=bar
minio@storage3:/usr/local/bin$ ./minio server http://storage{1...3}/minio1
ERROR Invalid command line arguments: Invalid total number of endpoints for erasure mode.
> Please provide correct combination of local/remote paths.
HELP:
For more information, please refer to https://docs.min.io/docs/minio-erasure-code-quickstart-guide
Run Code Online (Sandbox Code Playgroud)
请问你能帮帮我吗?
我创建了一个简单的 Ansible 剧本:
---
- hosts: all
tasks:
- name: Install Icinga2 on Windows
include_role:
name: my.icinga2.role
apply:
tags:
- install-icinga2
Run Code Online (Sandbox Code Playgroud)
该角色包含以下任务文件:
---
- include_tasks: vars.yml
tags: ['always']
- include_tasks: install.yml
tags: ['install-icinga2-stack', 'install-icinga2']
- include_tasks: ido-install.yml
when: icinga2_ido_enable == true
tags: ['install-icinga2-stack', 'install-icinga2-ido']
- include_tasks: configure.yml
tags: ['install-icinga2-stack']
[...]
Run Code Online (Sandbox Code Playgroud)
这是我执行剧本时的结果:
me@ansible:~/ansible$ ansible-playbook plays/icinga2-client-win.yml -i staging.ini --limit windows
PLAY [all] ***************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************
ok: [my.windows.client]
TASK [Include variables for Icinga 2] ********************************************************************************************
ok: [my.windows.client]
TASK [set_fact] ******************************************************************************************************************
skipping: …Run Code Online (Sandbox Code Playgroud) 我有一个4 磁盘存储服务器,带有两个 ZFS raidz1 池,昨晚它突然开始以100% CPU运行,平均负载很高:
root@stg1:~# w
07:05:48 up 296 days, 17:19, 1 user, load average: 27.06, 25.49, 24.74
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
Run Code Online (Sandbox Code Playgroud)
我有很多 arc_prune 进程,它们占用了大量 CPU:
我的zfs_arc_max大小是默认值(应该是系统 RAM 的 50%),实际上它使用的内存不超过 16 GB:
------------------------------------------------------------------------
ZFS Subsystem Report Thu Aug 27 07:09:34 2020
ARC Summary: (HEALTHY)
Memory Throttle Count: 0
ARC Misc:
Deleted: 567.62m
Mutex Misses: 10.46m
Evict Skips: 10.46m
ARC Size: 102.63% 15.99 GiB
Target …Run Code Online (Sandbox Code Playgroud)