Задача — поднять EC2 интанс и добавить второй жесткий диск (Elastic Block Store).
Содержание
EC2
Запускаем EC2:
[simterm]
$ aws ec2 run-instances --image-id ami-cbfcd2b8 --count 1 --instance-type t2.nano --key-name my-cluster
[/simterm]
Ждём загрузки, получаем IP, подключаемся:
[simterm]
$ aws ec2 describe-instances --instance-ids i-0ed219a6624f04b01 --query '[Reservations[*].Instances[*].NetworkInterfaces[*].Association.PublicIp]' --output text 34.249.11.227
[/simterm]
Подключаемся:
[simterm]
$ ssh [email protected] -i .ssh/my-cluster.pem ... ubuntu@ip-172-31-34-112:~$
[/simterm]
Проверяем диски:
[simterm]
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part /
[/simterm]
EBS
Создаём новый диск:
[simterm]
$ aws ec2 create-volume --size 50 --no-encrypted --volume-type gp2 --availability-zone eu-west-1b { "VolumeId": "vol-03a6adccdadcda8b0", "Size": 50, "SnapshotId": "", "AvailabilityZone": "eu-west-1b", "State": "creating", "CreateTime": "2017-02-22T11:41:37.370Z", "VolumeType": "gp2", "Iops": 150, "Encrypted": false }
[/simterm]
--availability-zone
— EBS должен находится в той же AZ, что и интанс, к которому он будет подключаться.
Подключаем его к интансу:
[simterm]
$ aws ec2 create-attach-volume --volume-id vol-03a6adccdadcda8b0 --instance-id i-0ed219a6624f04b01 --device xvdb { "VolumeId": "vol-03a6adccdadcda8b0", "InstanceId": "i-0ed219a6624f04b01", "Device": "xvdb", "State": "attaching", "AttachTime": "2017-02-22T11:42:05.264Z" }
[/simterm]
Возвращаемся к машине, проверяем диски:
[simterm]
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdb 202:16 0 50G 0 disk
[/simterm]
Вот наш новый xvdb
.
Дальше — стандартно. Создаём раздел, файловую систему и обновляем fstab
.
Создаём раздел с помощью fdisk
:
[simterm]
# fdisk /dev/xvdb Welcome to fdisk (util-linux 2.28.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x94dd589b. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): First sector (2048-104857599, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599): Created a new partition 1 of type 'Linux' and of size 50 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
[/simterm]
Проверяем его разделы:
[simterm]
# lsblk /dev/xvdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdb 202:16 0 50G 0 disk └─xvdb1 202:17 0 50G 0 part
[/simterm]
Создаём файловую систему:
[simterm]
# mkfs.ext4 /dev/xvdb1
[/simterm]
Создаём точку монтирования, монтируем раздел:
[simterm]
# mkdir /jenkins # mount /dev/xvdb1 /jenkins/ # mount /dev/xvdb1 /jenkins/
[/simterm]
Обвновляем /etc/fstab
, добавляем монтирование при старте машины.
Находим UUID раздела:
[simterm]
# blkid /dev/xvdb1 /dev/xvdb1: UUID="1e87f4a3-3cdb-40ca-b0ff-4c237dba096e" TYPE="ext4" PARTUUID="94dd589b-01"
[/simterm]
Редактируем /etc/fstab
(с nofail
опцией):
[simterm]
# cat /etc/fstab LABEL=cloudimg-rootfs / ext4 defaults 0 0 UUID=1e87f4a3-3cdb-40ca-b0ff-4c237dba096e /jenkins ext4 defaults,nofail 0 2
[/simterm]
Бутаем машину:
[simterm]
# reboot Connection to 34.249.11.227 closed by remote host. Connection to 34.249.11.227 closed.
[/simterm]
Проверяем:
[simterm]
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdb 202:16 0 50G 0 disk └─xvdb1 202:17 0 50G 0 part /jenkins $ ls -l /jenkins/ total 16 drwx------ 2 root root 16384 Feb 22 11:45 lost+found
[/simterm]
Готово.