Задача — поднять 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]
Готово.




