Skip to content

Latest commit

 

History

History
197 lines (129 loc) · 12.5 KB

File metadata and controls

197 lines (129 loc) · 12.5 KB

十二、附录

本章为前几章中提出的所有问题提供了一套解决方案。 如果你已经回答了这些问题,你可以检查你的答案的准确性。 如果您当时无法找到解决方案,您可以参考这里给出的各章的答案。

第一章:探索微软 Azure 云

  1. 您可以对计算、网络和存储资源进行虚拟化。 当然,在一天结束的时候,您仍然需要世界上某个地方的硬件来运行管理程序,并且可能需要在其之上的云平台。
  2. 虚拟化模拟硬件,容器模拟操作系统,其中多个容器在底层操作系统上运行。 在虚拟化中,每个虚拟机都有自己的内核; 它们不使用 hypervisor/硬件内核。 在硬件虚拟化中,一切都被转换为软件。 在容器虚拟化中,只有进程是隔离的。
  3. 视情况而定; 你们是在同一个平台上开发应用的吗? 如果是,那么 PaaS 是适合您的服务类型; 否则,使用 IaaS。 SaaS 提供一个应用; 它不是一个托管平台。
  4. 视情况而定。 Azure 遵循并帮助您遵守法律规则和安全/隐私政策。 此外,如果担心数据在世界其他地方,还有不同地区的概念。 但总有例外——大多数情况下,是公司政策或政府规定。
  5. 它对于可伸缩性、性能和冗余非常重要。
  6. 它是一个基于云的身份管理服务,用于控制对云和本地混合环境的访问。 它允许您登录并访问云和本地环境,而不是使用您自己的 AD 服务器并管理它们。

第二章:Azure 云入门

  1. 它有助于自动化。 除此之外,基于 web 的门户经常变化,命令行界面更加稳定。 在我们看来,它还让您更好地理解底层技术,这要归功于其或多或少严格的工作流。
  2. 它提供了存储所有数据对象的访问。 您将需要一个用于 Azure Cloud Shell 的启动诊断和数据。 更多细节可以在第 4 章管理 Azure中找到。
  3. 存储帐户在 Azure 中必须是全局唯一的。
  4. offer 是由发行商(如 Ubuntu Server)提供的一组相关图片。 图像是一个特定的图像。
  5. 停止的 Azure 虚拟机将保持已分配的资源(如动态公网 IP 地址),并产生成本,而重新分配的虚拟机将释放所有资源,从而停止产生资源成本。 但是,两者都会产生存储成本。
  6. 基于密钥的身份验证有助于自动化,因为它可以在您的脚本中使用而不暴露秘密/密码。
  7. 将创建一个公共密钥和一个私有密钥(如果它们仍然是必需的),并将它们存储在您的主目录(~/)中。 ssh; 公钥将被添加到虚拟机中的authorized_keys文件中

第三章:Linux 基础管理

  1. for user in Lisa John Karel Carola; useradd $用户; 完成

  2. 执行passwd,然后输入welc0meITG,系统会要求您再次输入密码进行确认,请再次输入welc0meITG

  3. 获得<用户>

  4. groupadd finance; 分组添加员工

  5. groupmems -g<group_name>-a<user_name> 或者usermod -a -G<group_name><user_name>

  6. To create the directory and set group ownership, execute the following:

    mkdir / home /好吗

    乔恩员工/home/staff

    他妈的严重

    类似地,对于金融,执行以下命令:

    mkdir /home/finance

    乔恩金融/home/finance

    chgrp 金融/home/finance

  7. chmod -R g+r /home/finance

  8. 默认的获取访问控制列表(getfacl -d)将列出用户的 ACL。

第 4 章:管理 Azure

  1. 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 地址

    网络接口

  2. 您需要诊断和监控等名称服务,这些服务需要存储帐户。

  3. 有时(例如,对于存储帐户),名称必须是唯一的。 前缀结合随机生成的数字是使名称可识别和惟一的好方法。

  4. 定义可在虚拟网络中使用的 IP 范围。

  5. 在虚拟网络中创建一个或多个子网,这些子网可以相互隔离或路由到彼此,而不需要走出虚拟网络。

  6. 网络安全组为网络提供 acl,并向虚拟机或容器提供端口转发功能。

  7. 从虚拟机到 internet 的流量通过源网络地址转换(SNAT)进行发送。 这意味着原始包的 IP 地址被替换为公共 IP 地址,这是 TCP/IP 出站和入站路由所必需的。

  8. 动态分配的公网 IP 地址将在虚拟机释放时被释放。 当虚拟机再次启动时,它将获得另一个 IP 地址。 当业务 IP 地址发生变化,必须保持不变时,可以创建并分配静态公网 IP 地址。

第五章:高级 Linux 管理

  1. Linux 内核。

  2. system -udevd;

  3. ls /sys/class/netandip link show

  4. Linux 的 Azure 代理。

  5. ls /sys/class/netlsblklsscsi命令也会有帮助。

  6. 使用RAID0来提高性能,与只使用单个磁盘相比,可以提高吞吐量,这是一个好主意。

  7. 在文件系统级别,使用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 安全与身份

  1. 使用firewall-cmd文件,或者在**/etc/firewall目录下部署可扩展标记语言**(XML)文件。

  2. ——permanent参数使其在重新引导和启动配置期间持续执行。

  3. 在 Linux 中,可以在 systemd 中使用 acl 来限制访问。 一些应用还提供其他主机允许/拒绝选项。 在 Azure 中,您有网络安全组和 Azure Firewall 服务。

  4. Discretionary access control(DAC)用于限制基于用户/组和文件权限的访问。 强制访问控制(MAC)对每个资源对象的分类标签进行进一步的访问限制。

  5. 如果有人非法访问一个应用或系统,使用 DAC,就没有办法阻止进一步访问,特别是对于具有相同用户/组所有者的文件和具有其他人权限的文件。

  6. 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):本书没有涉及

  7. 除了 SELinux 可以保护更多的资源对象之外,AppArmor 直接使用路径,而 SELinux 通过细粒度的访问控制保护整个系统。

  8. You need the following prerequisites before joining an AD domain:

    用于授权的 Kerberos 客户机

    系统安全服务守护进程(SSSD):负责配置和使用诸如使用和缓存凭据等特性的后端

    Samba 库与 Windows 特性/选项兼容

    一些用于连接和管理域的实用程序,如realmadclinet命令

第七章:部署虚拟机

  1. 我们使用自动化部署来节省时间,快速建立和运行可复制的环境,并避免手动错误。

  2. 除了对前一个问题的回答,标准化的工作环境使基于团队的应用开发成为可能。

  3. 脚本非常灵活。 脚本更容易创建,并且可以随时手动调用。 自动化进程可以通过一些事件来触发,比如使用Git push向 Git 添加代码,或者虚拟机的停止/启动。

  4. Azure 资源管理器是最重要的一个。 此外,您还可以使用 Terraform、Ansible 和 PowerShell。

  5. Vagrant 在 Azure 中部署了一个工作负载; Packer 创建一个您可以部署的自定义映像。

  6. For multiple reasons, the most important ones are the following:

    安全,使用 CIS 标准加固图像

    当需要对标准图像进行定制时

    不依赖于第三方的产品

    捕获一个现有的虚拟机

    将快照转换为映像

  7. 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找到。

第 9 章:Azure 中的容器虚拟化

  1. 您可以使用容器来打包和分发应用,它可以是独立于平台的。 容器消除了对虚拟机和操作系统管理的需求,并帮助您实现高可用性和可伸缩性。
  2. 如果您的应用非常庞大,需要底层虚拟机的所有资源,那么不适合使用容器。
  3. Linux 容器(LXCs)是可以在 Azure 中提供的最佳解决方案。
  4. 像 Buildah 这样的工具使得创建可以在每个解决方案中使用的虚拟机成为可能。 Rkt(发音为“rocket”)也支持 Docker 格式。 Open Container Initiative 正在努力创建一些标准,使创建虚拟机更加容易。
  5. 您可以在 Azure 中开发所有内容,也可以在本地开发,然后将其推送到远程环境中。
  6. 它与容器平台无关,而且 Buildah 工具比其他工具更容易使用。 您可以在https://github.com/containers/buildah进一步探索。
  7. 可以根据需要构建、替换、停止和销毁容器,而不会对应用或数据产生任何影响,因此不建议在容器中存储任何数据。 相反,将它存储在一个卷中。

第十章:使用 Azure Kubernetes 服务

  1. pod 是一组具有共享资源(如存储和网络)的容器,以及关于如何运行容器的规范。
  2. 创建多容器吊舱的一个很好的理由是为了支持主应用的协同定位、协同管理的 helper 进程。
  3. 除了Azure Kubernetes Service(AKS)之外,还有多种可用的方法,包括 Draft 和 Helm,这在本章中已经讨论过。
  4. 您可以使用kubectl来更新 AKS 中的应用。 此外,您还可以使用 Helm 和 Draft。
  5. 你不需要自己手动操作; 它将由 AKS 自动完成。
  6. 当您想从多个容器中同时读/写时,您将需要一个 iSCSI 解决方案和一个集群文件系统。
  7. 示例代码在 GitHub 上的https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/aks/azure-disks-dynamic-pv.md提供。

第十一章:故障排除和监控您的工作负载

  1. 您可以使用 Azure Serial Console 作为根用户访问虚拟机,无需密码,除非它被特别阻止。

  2. 收集所有标准输出、syslog 消息以及来自内核、systemd 进程和单元的相关消息。

  3. syslog uses the following list of severities (per application):

    Alert:必须立即采取行动。

    Critical:危急状态。

    Error:错误条件。

    Warning:警告条件。

    注意事项:正常但有显着性。

    Informational:Informational 消息。

    Debug:调试级消息。

  4. 0-紧急 1-警告 2-紧急 3-错误 4-警告 5-通知 6-提示 7-调试

  5. 使用loggersystemd-cat。 如果应用或脚本不支持 syslog,可以使用它。 另一种选择是添加日志记录条目作为变更管理的一部分。

  6. Azure Log Analytics 服务用于查看虚拟机的指标。

  7. top实用程序存在几个缺点; 例如,您不能看到短暂的进程。 在和dstat之上的实用程序是这个问题的解决方案。

  8. sysstat工具提供历史数据; dstat提供实时监控。

  9. 它使来自 Azure 虚拟机(工作站)的tcpdump的数据收集更易于阅读,并具有很大的分析潜力。**