本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
如何將 OpsWorks for Puppet Enterprise 伺服器遷移至 Amazon Elastic Compute Cloud (Amazon EC2)
重要
AWS OpsWorks for Puppet Enterprise 此服務已於 2024 年 3 月 31 日終止,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問,請透過 AWS re:Post
下列指示說明如何將現有的 Puppet Enterprise 伺服器遷移至 Amazon EC2,以防您想要繼續使用 Puppet Enterprise 來滿足 OpsWorks 以外的組態管理需求。
主題
步驟 1:聯絡 Puppet 購買授權
當您將伺服器遷移至 EC2 時,新執行個體不會隨附 Puppet 授權。若要購買授權金鑰,請遵循 Puppet 網站
步驟 2:取得 OpsWorks for Puppet Enterprise 伺服器的詳細資訊
尋找並儲存 OpsWorks for Puppet Enterprise 伺服器的值。
-
登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/
:// 開啟 Amazon S3 主控台。 複製 OpsWorks for Puppet Enterprise 伺服器現有 Amazon S3 儲存貯體的名稱。儲存貯體名稱的格式如下:
aws-opsworks-cm-
server-name
-random-string
-
執行 aws opsworks-cm describe-servers命令以取得 OpsWorks for Puppet Enterprise 伺服器的組態。
aws opsworks-cm describe-servers \ --server-name
server-name
\ --regionregion
儲存
Endpoint
回應中InstanceType
、KeyPair
、InstanceProfileArn
、、SubnetIds
SecurityGroupIds
和 的值。 -
使用 SSH 連線到現有的 OpsWorks for Puppet Enterprise 伺服器。您可以在 EC2 主控台中使用 Session Manager,而不是 SSH。
執行下列命令。
rpm -qa | grep opsworks-cm-puppet-enterprise | cut -d '-' -f 5
回應提供 Puppet Enterprise 版本 (例如 2019.8.10)。儲存此值。
您將使用 SSH 或 Session Manager 進行下一個步驟。
步驟 3:備份您的 OpsWorks for Puppet Enterprise 伺服器
-
執行下列命令以建立本機備份。
mkdir /tmp/puppet-backup/ sudo /opt/puppetlabs/bin/puppet-backup create --dir=/tmp/puppet-backup/
-
執行下列命令來存放備份的名稱。
ls /tmp/puppet-backup/ PUPPET_BACKUP=$(ls /tmp/puppet-backup/)
-
執行下列命令,將備份上傳至 S3 儲存貯體。將
S3-Bucket
體取代為 中步驟 1 的值步驟 2:取得 OpsWorks for Puppet Enterprise 伺服器的詳細資訊。aws s3 cp /tmp/puppet-backup/
PUPPET_BACKUP
s3://S3_Bucket
/tmp/puppet-backup/存放
PUPPET_BACKUP
和S3_BUCKET
值。您會將這些值匯入新的 EC2 執行個體。
您可以結束 SSH 或 Session Manager 工作階段。
步驟 4:啟動新的 EC2 執行個體
使用與 OpsWorks for Puppet Enterprise 伺服器相同的組態,從位於 https://console.aws.amazon.com/ec2/
參數名稱 | Value |
---|---|
作業系統 |
Amazon Linux 2 |
執行個體類型 |
來自 的步驟 2 |
金鑰對名稱 |
來自 的步驟 2 |
VPC |
|
子網路 |
|
選取現有的安全群組 -> 一般安全群組 |
|
儲存 |
至少 120 GB。 |
IAM 執行個體設定檔 |
|
如果您想要建立彈性 IP 並將其連接至新執行個體,請複製新執行個體的執行個體 ID,並完成 中的步驟(選用) 步驟 4.1:建立和連接彈性 IP。
(選用) 步驟 4.1:建立和連接彈性 IP
透過彈性 IP 位址,您可以快速地將地址重新映射至帳戶中的另一個執行個體,以遮罩執行個體或軟體的故障。
建立和關聯彈性 IP 地址
-
登入 AWS Management Console 並開啟 Amazon EC2 主控台,網址為 https://https://console.aws.amazon.com/ec2/
。 -
選擇彈性 IPs。
-
選擇 Allocate Elastic IP address (配置彈性 IP 位址)。
-
在配置彈性 IP 地址頁面中,選擇配置。這會建立公有 IPv4 地址。
-
複製配置的 IPv4 地址。
-
在動作中,選擇關聯彈性 IP 地址。
-
針對執行個體,輸入新執行個體的執行個體 ID。
-
選擇關聯。
步驟 5:在新的 EC2 執行個體上安裝 Puppet Enterprise
使用 SSH 連線到新的 EC2 執行個體。您可以在 EC2 主控台中使用 Session Manager,而不是 SSH。
# switch to sudo user sudo -i # Setup environment variables PUPPET_ENTERPRISE_VERSION=
Puppet Enterprise version from step 2.3
hostnamePublic IPv4 DNS or Custom Domain if available
# Install Puppet Enterprise curl -JLO https://pm.puppetlabs.com/puppet-enterprise/$PUPPET_ENTERPRISE_VERSION/puppet-enterprise-$PUPPET_ENTERPRISE_VERSION-el-7-x86_64.tar.gz tar -xf puppet-enterprise-$PUPPET_ENTERPRISE_VERSION-el-7-x86_64.tar.gz ./puppet-enterprise-$PUPPET_ENTERPRISE_VERSION-el-7-x86_64/puppet-enterprise-installer
您可以在下一個步驟中保持 SSH 或 Session Manager 工作階段開啟。
步驟 6:在新的 EC2 執行個體上還原備份
# Setup environment variables S3_BUCKET=
S3 bucket name from step 2.1
PUPPET_BACKUP=Puppet backup file name from step 3.2
# download backup aws s3 cp s3://$S3_BUCKET/tmp/puppet-backup/$PUPPET_BACKUP
# Prepare Puppet Enterprise backup to remove OpsWorks metadata mkdir output tar -xf $PUPPET_BACKUP -C output/ cd output/ rm -f opt/puppetlabs/facter/facts.d/opsworks.json tar -cf ../$PUPPET_BACKUP * cd .. rm -rf output/ # Restore from backup PATH=$PATH:/opt/puppetlabs/puppet/bin/ puppet-backup restore $PUPPET_BACKUP puppet agent -t
您可以在執行個體的 https://Public IPv4 存取還原 EC2 執行個體的 Puppet 主控台。 IPv4
您可以在 EC2 主控台的執行個體詳細資訊頁面上找到公有 IPv4 DNS。登入登入資料與您用來存取 OpsWorks for Puppet Enterprise 伺服器的登入資料相同。
您可以在下一個步驟中保持 SSH 或 Session Manager 工作階段開啟。
步驟 7:設定您的 Puppet 授權
請遵循 Puppet 網站上的
您可以在下一個步驟中保持 SSH 或 Session Manager 工作階段開啟。
步驟 8:遷移節點
OpsWorks for Puppet Enterprise 伺服器支援兩種類型的網域:
-
BYODC (自帶網域和憑證)
-
OpsWorks 端點
步驟 8.1:針對 BYODC (自帶網域和憑證)
對於這些節點,您只需要將 DNS 供應商中的自訂網域指向新 EC2 執行個體的公有 IPv4 DNS 或公有 IPv4 地址。
步驟 8.2:適用於 OpsWorks 端點
對於 OpsWorks 端點,Puppet 文件建議解除安裝
注意
雖然 Puppet 沒有自動移動代理程式節點的程序,但 Puppet 社群成員在 Puppet Forge 網站上pe_migrate
下列各節提供在 Linux 執行個體上解除安裝和重新安裝 Puppet 代理程式的步驟。
步驟 8.2.1:從 Puppet 伺服器複製解除安裝程式
解除安裝代理程式之前,請確定節點的 IAM 執行個體描述檔提供 S3 ReadOnly 許可。
執行下列命令,將解除安裝程式從 Puppet 伺服器複製到 S3 儲存貯體。
aws s3 cp \ /opt/puppetlabs/bin/puppet-enterprise-uninstaller \ s3://
$S3_BUCKET/tmp/puppet-enterprise-uninstaller
執行 命令後,您可以登出 Puppet 伺服器的 SSH 或 Session Manager 工作階段。
步驟 8.2.2:下載解除安裝程式並在節點上執行
使用 SSH 連線到節點。如果節點是 EC2 執行個體,您可以在 EC2 主控台中使用 Session Manager,而不是 SSH。
sudo -i S3_BUCKET=aws-opsworks-cm-abcdefg-uuhtyn6messn aws s3 cp s3://
$S3_BUCKET/tmp/puppet-enterprise-uninstaller /opt/puppetlabs/bin/
chmod 700 /opt/puppetlabs/bin/puppet-enterprise-uninstaller /opt/puppetlabs/bin/puppet-enterprise-uninstaller
您可以在下一個步驟中保持 SSH 或 Session Manager 工作階段開啟。
步驟 8.2.3:在節點上重新安裝 Puppet 代理程式
請完成下列步驟,以在節點上重新安裝 Puppet 代理程式。
主題
步驟 8.2.3.1:使用正確的組態安裝 Puppet 代理程式
執行下列命令來安裝 Puppet 代理程式。
curl -k https://
Public_IPv4_DNS
:8140/packages/current/install.bash | bash
您可以在步驟 8.2.2.3 中保持 SSH 或 Session Manager 工作階段開啟。
步驟 8.2.3.2:接受 Puppet 主控台中的憑證
-
前往 的 Puppet 伺服器主控台
https://
。Public_IPv4_DNS
-
選擇憑證,然後選擇未簽署的憑證。
-
選擇接受以簽署 Puppet 代理程式的憑證。
步驟 8.2.3.3:檢查 Puppet Enterprise 伺服器中的節點
在節點上執行下列命令,以檢查它是否進入伺服器。
puppet agent -t
節點現在應該會顯示在 Puppet 伺服器主控台中。
步驟 9:刪除 Puppet Enterprise 伺服器的 OpsWorks
您可以使用 OpsWorks 主控台或刪除 AWS CLI OpsWorks for Puppet Enterprise 伺服器。
使用 OpsWorks 主控台刪除您的伺服器
-
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/opsworks/
開啟 AWS OpsWorks 主控台。 -
從導覽窗格中選擇 Puppet Enterprise 伺服器。
-
在 Puppet Enterprise 伺服器頁面上,選擇您要刪除的伺服器。
-
在動作中,選擇刪除 Puppet Enterprise 伺服器。
使用 刪除您的伺服器 AWS CLI
執行下列命令。
aws opsworks-cm delete-server \ --server-name
server-name
\ --regionregion