本章为前几章中提出的所有问题提供了一套解决方案。 如果你已经回答了这些问题,你可以检查你的答案的准确性。 如果您当时无法找到解决方案,您可以参考这里给出的各章的答案。
- 您可以对计算、网络和存储资源进行虚拟化。 当然,在一天结束的时候,您仍然需要世界上某个地方的硬件来运行管理程序,并且可能需要在其之上的云平台。
- 虚拟化模拟硬件,容器模拟操作系统,其中多个容器在底层操作系统上运行。 在虚拟化中,每个虚拟机都有自己的内核; 它们不使用 hypervisor/硬件内核。 在硬件虚拟化中,一切都被转换为软件。 在容器虚拟化中,只有进程是隔离的。
- 视情况而定; 你们是在同一个平台上开发应用的吗? 如果是,那么 PaaS 是适合您的服务类型; 否则,使用 IaaS。 SaaS 提供一个应用; 它不是一个托管平台。
- 视情况而定。 Azure 遵循并帮助您遵守法律规则和安全/隐私政策。 此外,如果担心数据在世界其他地方,还有不同地区的概念。 但总有例外——大多数情况下,是公司政策或政府规定。
- 它对于可伸缩性、性能和冗余非常重要。
- 它是一个基于云的身份管理服务,用于控制对云和本地混合环境的访问。 它允许您登录并访问云和本地环境,而不是使用您自己的 AD 服务器并管理它们。
- 它有助于自动化。 除此之外,基于 web 的门户经常变化,命令行界面更加稳定。 在我们看来,它还让您更好地理解底层技术,这要归功于其或多或少严格的工作流。
- 它提供了存储所有数据对象的访问。 您将需要一个用于 Azure Cloud Shell 的启动诊断和数据。 更多细节可以在第 4 章,管理 Azure中找到。
- 存储帐户在 Azure 中必须是全局唯一的。
- offer 是由发行商(如 Ubuntu Server)提供的一组相关图片。 图像是一个特定的图像。
- 停止的 Azure 虚拟机将保持已分配的资源(如动态公网 IP 地址),并产生成本,而重新分配的虚拟机将释放所有资源,从而停止产生资源成本。 但是,两者都会产生存储成本。
- 基于密钥的身份验证有助于自动化,因为它可以在您的脚本中使用而不暴露秘密/密码。
- 将创建一个公共密钥和一个私有密钥(如果它们仍然是必需的),并将它们存储在您的主目录(~/)中。 ssh; 公钥将被添加到虚拟机中的authorized_keys文件中
-
for user in Lisa John Karel Carola; useradd $用户; 完成。
-
执行passwd,然后输入welc0meITG,系统会要求您再次输入密码进行确认,请再次输入welc0meITG。
-
获得<用户>
-
groupadd finance; 分组添加员工
-
groupmems -g<group_name>-a<user_name> 或者usermod -a -G<group_name><user_name>。
-
To create the directory and set group ownership, execute the following:
mkdir / home /好吗
乔恩员工/home/staff
他妈的严重
类似地,对于金融,执行以下命令:
mkdir /home/finance
乔恩金融/home/finance
chgrp 金融/home/finance
-
chmod -R g+r /home/finance
-
默认的获取访问控制列表(getfacl -d)将列出用户的 ACL。
-
You don't need anything when you create a virtual machine using the Azure portal. When you use the command line, you need virtual networks with the following:
资源组
Azure虚拟网络(VNet)
一个配置的子网
网络安全组
一个公网 IP 地址
网络接口
-
您需要诊断和监控等名称服务,这些服务需要存储帐户。
-
有时(例如,对于存储帐户),名称必须是唯一的。 前缀结合随机生成的数字是使名称可识别和惟一的好方法。
-
定义可在虚拟网络中使用的 IP 范围。
-
在虚拟网络中创建一个或多个子网,这些子网可以相互隔离或路由到彼此,而不需要走出虚拟网络。
-
网络安全组为网络提供 acl,并向虚拟机或容器提供端口转发功能。
-
从虚拟机到 internet 的流量通过源网络地址转换(SNAT)进行发送。 这意味着原始包的 IP 地址被替换为公共 IP 地址,这是 TCP/IP 出站和入站路由所必需的。
-
动态分配的公网 IP 地址将在虚拟机释放时被释放。 当虚拟机再次启动时,它将获得另一个 IP 地址。 当业务 IP 地址发生变化,必须保持不变时,可以创建并分配静态公网 IP 地址。
-
Linux 内核。
-
system -udevd;
-
ls /sys/class/netandip link show。
-
Linux 的 Azure 代理。
-
ls /sys/class/net和lsblk。 lsscsi命令也会有帮助。
-
使用RAID0来提高性能,与只使用单个磁盘相比,可以提高吞吐量,这是一个好主意。
-
在文件系统级别,使用b -树文件系统(BTRFS)或文件系统Z**(【ZFS T6】),或在块上使用 Linux 软件 RAID(【显示】mdadm)或逻辑卷管理器(LVM【病人】)(不包括在这一章)。** *** Create the RAID, format it, and make a mount point:
mkfs -create /dev/md127——level 0——raid-devices 3 \ /dev/sd{c,d,e} mkdir /mnt/myraid . xfs -L myraid /dev/md127
创建一个单元文件**/etc/systemd/system/mnt-myraid。 mount**:
[Unit]Description = myRaid volume [Mount]Where = /mnt/ myRaid What = /dev/md127 Type = xfs [Install]WantedBy = local-fs.mount . conf . conf . conf . conf . conf . conf . conf . conf
启动并启用它在启动:
Systemctl enable——now mnt-myraid.mount**
**## 第六章:管理 Linux 安全与身份
-
使用firewall-cmd文件,或者在**/etc/firewall目录下部署可扩展标记语言**(XML)文件。
-
——permanent参数使其在重新引导和启动配置期间持续执行。
-
在 Linux 中,可以在 systemd 中使用 acl 来限制访问。 一些应用还提供其他主机允许/拒绝选项。 在 Azure 中,您有网络安全组和 Azure Firewall 服务。
-
Discretionary access control(DAC)用于限制基于用户/组和文件权限的访问。 强制访问控制(MAC)对每个资源对象的分类标签进行进一步的访问限制。
-
如果有人非法访问一个应用或系统,使用 DAC,就没有办法阻止进一步访问,特别是对于具有相同用户/组所有者的文件和具有其他人权限的文件。
-
Every device will have a unique MAC address and you can find your virtual machine's MAC address using ipconfig/ all and then look for Physical Address.
使用 Linux 安全模块的 MAC 框架如下:
SELinux:基于 Red hat 的发行版和 SUSE
AppArmor: Ubuntu and SUSE
不太为人所知的 TOMOYO (SUSE):本书没有涉及
-
除了 SELinux 可以保护更多的资源对象之外,AppArmor 直接使用路径,而 SELinux 通过细粒度的访问控制保护整个系统。
-
You need the following prerequisites before joining an AD domain:
用于授权的 Kerberos 客户机
系统安全服务守护进程(SSSD):负责配置和使用诸如使用和缓存凭据等特性的后端
Samba 库与 Windows 特性/选项兼容
一些用于连接和管理域的实用程序,如realm、adcli和net命令
-
我们使用自动化部署来节省时间,快速建立和运行可复制的环境,并避免手动错误。
-
除了对前一个问题的回答,标准化的工作环境使基于团队的应用开发成为可能。
-
脚本非常灵活。 脚本更容易创建,并且可以随时手动调用。 自动化进程可以通过一些事件来触发,比如使用Git push向 Git 添加代码,或者虚拟机的停止/启动。
-
Azure 资源管理器是最重要的一个。 此外,您还可以使用 Terraform、Ansible 和 PowerShell。
-
Vagrant 在 Azure 中部署了一个工作负载; Packer 创建一个您可以部署的自定义映像。
-
For multiple reasons, the most important ones are the following:
安全,使用 CIS 标准加固图像
当需要对标准图像进行定制时
不依赖于第三方的产品
捕获一个现有的虚拟机
将快照转换为映像
-
You can create your own image by building your own VHD file. The following are the options for doing so:
在 Hyper-V 或 VirtualBox 中创建一个虚拟机,这是一个用于 Windows、Linux 和 macOS 的免费 hypervisor。
在 VMware Workstation 或 KVM 中创建虚拟机,并在 Linux qemu-img 中使用它来转换映像。
示例脚本可以在 GitHub 上的https://github.com/PacktPublishing/Hands-On-Linux-Administration-on-Azure---Second-Edition/tree/master/chapter12/solutions_chapter08找到。
- 您可以使用容器来打包和分发应用,它可以是独立于平台的。 容器消除了对虚拟机和操作系统管理的需求,并帮助您实现高可用性和可伸缩性。
- 如果您的应用非常庞大,需要底层虚拟机的所有资源,那么不适合使用容器。
- Linux 容器(LXCs)是可以在 Azure 中提供的最佳解决方案。
- 像 Buildah 这样的工具使得创建可以在每个解决方案中使用的虚拟机成为可能。 Rkt(发音为“rocket”)也支持 Docker 格式。 Open Container Initiative 正在努力创建一些标准,使创建虚拟机更加容易。
- 您可以在 Azure 中开发所有内容,也可以在本地开发,然后将其推送到远程环境中。
- 它与容器平台无关,而且 Buildah 工具比其他工具更容易使用。 您可以在https://github.com/containers/buildah进一步探索。
- 可以根据需要构建、替换、停止和销毁容器,而不会对应用或数据产生任何影响,因此不建议在容器中存储任何数据。 相反,将它存储在一个卷中。
- pod 是一组具有共享资源(如存储和网络)的容器,以及关于如何运行容器的规范。
- 创建多容器吊舱的一个很好的理由是为了支持主应用的协同定位、协同管理的 helper 进程。
- 除了Azure Kubernetes Service(AKS)之外,还有多种可用的方法,包括 Draft 和 Helm,这在本章中已经讨论过。
- 您可以使用kubectl来更新 AKS 中的应用。 此外,您还可以使用 Helm 和 Draft。
- 你不需要自己手动操作; 它将由 AKS 自动完成。
- 当您想从多个容器中同时读/写时,您将需要一个 iSCSI 解决方案和一个集群文件系统。
- 示例代码在 GitHub 上的https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/aks/azure-disks-dynamic-pv.md提供。
-
您可以使用 Azure Serial Console 作为根用户访问虚拟机,无需密码,除非它被特别阻止。
-
收集所有标准输出、syslog 消息以及来自内核、systemd 进程和单元的相关消息。
-
syslog uses the following list of severities (per application):
Alert:必须立即采取行动。
Critical:危急状态。
Error:错误条件。
Warning:警告条件。
注意事项:正常但有显着性。
Informational:Informational 消息。
Debug:调试级消息。
-
0-紧急 1-警告 2-紧急 3-错误 4-警告 5-通知 6-提示 7-调试
-
使用logger或systemd-cat。 如果应用或脚本不支持 syslog,可以使用它。 另一种选择是添加日志记录条目作为变更管理的一部分。
-
Azure Log Analytics 服务用于查看虚拟机的指标。
-
top实用程序存在几个缺点; 例如,您不能看到短暂的进程。 在和dstat之上的实用程序是这个问题的解决方案。
-
sysstat工具提供历史数据; dstat提供实时监控。
-
它使来自 Azure 虚拟机(工作站)的tcpdump的数据收集更易于阅读,并具有很大的分析潜力。**