AWS создать машину с установленным объемом - PullRequest
0 голосов
/ 03 марта 2019

Я использую aws ec2 с машиной ubuntu. Я хотел бы создать том, и каждый раз, когда я создаю машину, мне нужно, чтобы он был подключен и подключен к машине.

Обратите внимание, что это единственный существующий том, и он будет монтироваться только на одном компьютере одновременно.Мне нужно запустить точечный экземпляр и каждый раз присоединять и монтировать этот том автоматически.

Как я обнаружил, я создал машину с помощью aws-cli, а затем , подключив том с помощьюcli , я не могу найти способ смонтировать том на машине (я не хочу использовать ssh на машине) Я думал об использовании aws run command , чтобы попытаться сделатьтак, но не могу найти команду монтирования там.Есть ли какой-нибудь программный способ сделать это через cli другого инструмента?

1 Ответ

0 голосов
/ 03 марта 2019

Для этого вы можете написать CloudFormation скрипт.Это инструмент Infrastructure-as-a-code, который позволит вам создать большую часть ресурса AWS в простом файле yml.

Для подключения дисков вы можете прикрепить его, а затем смонтировать в нужный каталог.через раздел пользовательских данных.

Я добавлю ниже пример кода для вас.

Resources:
  server1:
    Type: 'AWS::EC2::Instance'
    Properties:
      DisableApiTermination: 'true'
      AvailabilityZone: us-east-1c
      ImageId:
        Ref: AMI
      InstanceType:
        Ref: InstanceType
      KeyName:
        Ref: KeyName
      SecurityGroupIds:
        - Ref: WebSG
      IamInstanceProfile:
        Ref: InstanceProfile
      SubnetId:
        Ref: SubnetId
      BlockDeviceMappings:
        - DeviceName: /dev/sda1
          Ebs:
            VolumeSize:
              Ref: RootVolumeSize
            VolumeType: gp2
        - DeviceName: /dev/sde
          Ebs:
            VolumeSize:
              Ref: AppVolumeSize
            VolumeType: gp2
      UserData:
        'Fn::Base64': !Sub |-
          #!/bin/bash -v
          yum update -y aws-cfn-bootstrap
          exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
          date > /home/ec2-user/starttime

          #Partition new disks
          echo -e "o\nn\np\n1\n\n\nw" |fdisk /dev/xvde

          #Make Folders to mount new disks
          mkdir /APP

          #Format disks
          mkfs.ext3 /dev/xvde1

          #Mount New Disks
          mount /dev/xvde1 /APP

          #Add mounts to FSTab so it will stick in reboot
          echo "/dev/xvde1 /APP ext3 defaults 0 2" >> /etc/fstab

          date > /home/ec2-user/stoptime
          echo END

Чтобы подключить существующий том, определите идентификатор тома в параметрах, например как 'AppVolume 'и подключите его к экземпляру с помощью приведенного ниже блока кода

MountPoint:
  Type: AWS::EC2::VolumeAttachment
  Properties:
    InstanceId: !Ref 'Ec2Instance'
    VolumeId: !Ref 'AppVolume'
    Device: /dev/sdh

Подробнее об этом можно прочитать в Документация AWS

...