如何在CentOS 8上安装AWS SSM代理| CentOS 7
本文为用户提供了有关如何在CentOS 8和CentOS 7 EC2 Linux实例上安装AWS SSM代理的指南。
SSM代表系统管理器。这是用于管理AWS上服务器的管理服务。 以下是使用系统管理器的具体示例。
假设用户要使用相同的配置来配置多个服务器/ ec2实例。用户可以使用系统管理器在所有服务器上同时运行命令,而不必一次在每个实例上运行。
这也是用于自动化您在ec2实例上执行的任务的出色工具。例如,更新您的操作系统版本或确保您的ec2实例符合某些管理策略。
Systems Manager允许用户无需使用ssh或KeyPairs即可连接到实例。 这对于安全性很有用,因为您不必打开端口22进行ssh访问。
CentOS8上的SSM代理|安装CentOS7的前提条件
设置要求如下:
- AWS账户。
- 有权在AWS上创建资源的用户。
- 用于创建和编辑CloudFormation模板的IDE。
步骤1:创建EC2实例,配置文件和角色
我没有手动创建单个资源,而是使用了一个CloudFormation模板。模板创建。
- SSM的作用。
- 使用上面创建的角色的EC2实例配置文件。
- EC2实例安全组
- 最后,安装了SSM代理的EC2实例。
这是我的CloudFormation模板:
AWSTemplateFormatVersion: "2010-09-09"
Description: "Template to create Centos ec2 instance and install SSM on it"
Parameters:
VPC:
Type: String
Description: The vpc to launch the service
Default: vpc-ID
PublicSubnet1:
Type: String
Description: The subnet where to launch the ec2
Default: subnet-ID
Resources:
IAMInstanceRole:
Type: 'AWS::IAM::Role'
Properties:
Description: The SSM Instance Profile
RoleName: AWSEC2SSMtest
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- ec2.amazonaws.com
Action:
- 'sts:AssumeRole'
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM
- arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
Tags:
-
Key: "Project"
Value: "test-blog"
-
Key: "Environment"
Value: "test"
-
Key: "createdBy"
Value: "Maureen Barasa"
-
Key: "Name"
Value: "AWSEC2SSMtest"
IAMInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
InstanceProfileName: AWSEC2SSMtest
Roles:
- !Ref IAMInstanceRole
CentosServer:
Type: "AWS::EC2::Instance"
Properties:
ImageId: "ami-ID"
InstanceType: "t2.micro"
KeyName: "test-key"
AvailabilityZone: !Sub "${AWS::Region}a"
Tenancy: "default"
DisableApiTermination: true
SubnetId: !Ref PublicSubnet1
EbsOptimized: false
SecurityGroupIds:
- !Ref CentosSecurityGroup
SourceDestCheck: true
BlockDeviceMappings:
-
DeviceName: "/dev/xvda"
Ebs:
Encrypted: false
VolumeSize: 20
VolumeType: "gp2"
DeleteOnTermination: true
UserData:
"Fn::Base64":
!Sub |
#!/bin/bash
cd /tmp
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
IamInstanceProfile: !Ref IAMInstanceProfile
Tags:
-
Key: "Project"
Value: "test-blog"
-
Key: "Environment"
Value: "test"
-
Key: "createdBy"
Value: "Maureen Barasa"
-
Key: "Name"
Value: "Test-Centos"
CentosSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
Properties:
GroupDescription: "Security Group to control access to the test Centos server"
GroupName: "Test-Centos-SG"
VpcId: !Ref VPC
SecurityGroupIngress:
-
CidrIp: 0.0.0.0/0
FromPort: 22
IpProtocol: "tcp"
ToPort: 22
-
CidrIp: 0.0.0.0/0
FromPort: 443
IpProtocol: "tcp"
ToPort: 443
Outputs:
Server1:
Description: The created studio server
Value: !Ref CentosServer
SecurityGroup:
Description: The server sg
Value: !Ref CentosSecurityGroup
参数部分允许用户输入自己的值。在这种情况下,用户必须用AWS账户的唯一ID替换VPC和子网ID。
在“资源”部分中,模板首先创建一个实例角色。实例角色具有允许ec2实例承担角色的信任策略。此外,该角色具有两个与之关联的策略。 适用于SSM的Amazon EC2Role和Amazon SSM托管实例核心。用户可以自定义角色名称和标签以适合他们的选择。
然后,模板创建一个实例配置文件,并将上面创建的角色附加到它。同样,用户可以自定义角色的名称。 N / B:实例配置文件和角色名称必须相同。否则,该角色将不会出现在ec2实例中。
最后,模板创建一个ec2实例安全组和一个ec2实例。 使用资源的user-data属性安装SSM代理。用户可以将名称和标签自定义为适当的选项。另外,请确保将您的AMI-ID替换为与您的AWS账户关联的Centos AMI。
步骤2:运行CloudFormation模板
您可以使用CodePipeline部署模板,也可以在CloudFormation控制台中手动部署模板。本教程使用CloudFormation控制台。
在CloudFormation控制台中,[スタックの作成]单击。
创建一个堆栈
下一个,[新しいテンプレートとリソースを使用してスタックを作成する]选择。
用新资源创建堆栈
然后选择一个模板。在这种情况下,请上传创建的模板。
上载范本
在打开的选项卡中,您需要指定堆栈的名称并输入模板参数。输入自定义值的详细信息,然后[次へ]单击。
输入模板参数和堆栈名称
下一个选项卡允许用户将标签添加到堆栈。它还为用户提供了配置堆栈策略和通知的选项。完成后[次へ]单击。它提供了一个“检查”选项卡,可为您提供所有已完成配置的完整图片。如果用户对显示的内容感到满意,[スタックの作成]您可以单击。 CloudFormation将开始创建资源。
手动安装SSM代理
如果要在使用CloudFormation创建角色并将其附加到EC2实例后手动安装SSM代理,请在VM控制台中运行以下命令:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
请注意以下教程,该教程演示了如何使用CodePipeline部署CloudFormation模板。