ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自动化迁移步骤

2021-10-17 19:31:38  阅读:123  来源: 互联网

标签:www 步骤 AWS db 实例 文档 自动化 迁移 运行


概述

您正在帮助公司从数据中心迁移到AWS。在迁移过程中,通常需要一些重新配置步骤,从数据库端点或代理设置到程序包部署。这些步骤可能容易出错,而且很耗时,因此自动化它们对于扩展迁移是必要的。

您的挑战是使用AWS Sytems Manager在迁移的服务器上执行一些重新配置。

在这里输入答案

解决这个挑战

您的挑战是执行一些应用程序重新配置,以将Web服务器与应用程序数据库重新连接。

使用AWS Systems Manager,您应该能够在迁移的服务器上执行某些任务,而无需手动连接到该服务器。

完成挑战后,网站应显示答案。该网站地址为:http:// [您的ec2公共IP地址]

在您的实验室环境中,您会发现:

公开的EC2实例

/ var / www / html中的config.php文件,其中包含设置

MySQL RDS数据库

线索

罚分:8分

线索1:从哪里开始?

AWS Systems Manager包含多种功能。今天有趣的是Run Command和Parameter Store(可选)。

Run Command使您可以针对托管服务器运行文档。文档是运行管理任务(例如执行脚本,安装补丁或执行软件安装)的一种简单方法。文档可以是客户托管的,也可以是AWS托管的。看一下已经可用的文档。

参数存储是一种方便的键值存储,可以帮助您存储应用程序的设置,例如连接字符串,用户名或密码。

对于该解决方案,您应该运行两个脚本,一个用于在/ var / www / html文件夹中发现配置文件config.php的内容,第二个通过系统管理器来调整配置文件。请勿使用S3或CloudWatch解决此解决方案。

罚款:10分

线索2:使用SSM获取配置文件

让我们从获取当前配置文件开始

使用RunCommand,执行AWS-RunShellScript文档,您可以在实例上执行任意脚本:

从系统管理器菜单中选择运行命令

在运行命令屏幕上,按按钮运行命令

从文档列表中选择AWS-RunShellScript(您需要滚动页面)

在“命令参数”自由文本上,将bash脚本复制粘贴到下面

#!/bin/bash

cat /var/www/html/config.php

然后,您可以创建您的自定义文档,或AWS-RunShellScript再次使用它来进行一些修改;在此示例中,我们使用了bash脚本。

在目标部分,手动选择实例,然后从列表中选择您的EC2实例

在输出部分,取消选中S3和CloudWatch Logs,运行命令后将显示输出

继续并按下运行按钮,这将执行脚本

脚本成功运行后,转到“目标和输出”部分,按链接,您将能够看到输出部分

转到输出部分并将其展开,在那里您可以看到连接字符串配置

您已准备好进行下一步。

罚则:12分

线索3:让我们明白这一点

完整答案

连接到实例“公共IP”以查看应用程序的当前状态。它应该返回该应用程序仍指向旧数据库。

使用AWS Systems Manager,您可以在托管实例上运行任意代码,而无需SSH访问。在我们的例子中,我们需要找出当前的配置文件并替换数据库连接字符串。RunCommand与AWS-RunShellScript文档一起使用并将参数设置为:

 #!/bin/bash

 cat /var/www/html/config.php

使用命令的输出,您应该看到当前的文件配置。请查看线索2,以获取逐步说明。

查看文件,您应该看到该变量$db_host = "onprem.legacy.local";需要修改。关于如何执行更改,您有很多选择,以下是两个选择:

首先,您可以再次使用AWS-RunShellScript文档执行sed来替换罪魁祸首字符串。以下一行命令将创建一个备份文件,并将当前的$ db_host替换为somedb.rds.amazonaws.com。

sed -i.bak -E 's/\$db_host = "(.*)";/\$db_host = "somedb.rds.amazonaws.com";/g' /var/www/html/config.php

需要通过使用正确的连接字符串替换“ somedb.rds.amazonaws.com”来修改以上脚本。要获得正确的连接字符串,请查看参数存储,这是系统管理器选项中的另一个输入菜单。

请参阅线索2,以获取有关如何运行Shell脚本命令的分步示例,您也应使用相同的步骤来运行上述命令。

(如果完成了选项1,则跳过此步骤)第二个选项是两个创建自定义文档,然后将其针对实例运行。该文档包含与选项一几乎相同的内容。

---

schemaVersion: '2.2'

description: >

  This document should solve the challenge

parameters:

  RDSEndpoint:

    type: String

    default: "someendpoint.rds.amazonaws.com"

    description: "RDS"

mainSteps:

- action: aws:runShellScript

  precondition:

    StringEquals:

      - platformType

      - Linux

  name: ReconfigureDBEndpoint

  inputs:

    runCommand:

    - "#!/bin/bash"

    - echo "ENDPOINT = {<!-- -->{RDSEndpoint}}"

    - sed -i.bak -E 's/\$db_host = "(.*)";/\$db_host = "{<!-- -->{RDSEndpoint}}";/g' /var/www/html/config.php

现在,您应该刷新实例网页以获取挑战的答案。实例页面将为http://[your ec2 public IP adress],您应该获得连接成功的消息以及挑战的答案。

标签:www,步骤,AWS,db,实例,文档,自动化,迁移,运行
来源: https://blog.csdn.net/yolo_lot/article/details/120814757

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有