Невозможно смонтировать том, созданный terraform - PullRequest
0 голосов
/ 11 июля 2019

Я использую следующий шаблон terraform

resource "aws_instance" "ec2" {
  ami           = "${var.ami_id}"
  instance_type = "${var.flavor}"
  key_name = "${var.key_name}"
  availability_zone = "${var.availability_zone}"
  security_groups= ["${var.security_group}"]
  tags = {Name = "${var.instance_name}"}
  }

resource "aws_volume_attachment" "ebs_volume" {
  device_name = "/dev/sdg"
  volume_id = "vol-006d716dad719545c"
  instance_id = "${aws_instance.ec2.id}"
}

для запуска экземпляра в aws и присоединения тома к этому экземпляру.

При выполнении этого я вижу, что экземпляр создан иТом также присоединен к экземпляру.

ubuntu@ip-172-31-10-43:~$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0     7:0    0   91M  1 loop /snap/core/6350
loop1     7:1    0   18M  1 loop /snap/amazon-ssm-agent/930
loop2     7:2    0 88.4M  1 loop /snap/core/6964
loop3     7:3    0   18M  1 loop /snap/amazon-ssm-agent/1335
xvda    202:0    0   50G  0 disk
└─xvda1 202:1    0   50G  0 part /
xvdg    202:96   0   20G  0 disk

Но когда я пытаюсь смонтировать том, я получаю эту странную ошибку

ubuntu@ip-172-31-10-43:~$ sudo mkdir -p /goutham
ubuntu@ip-172-31-10-43:~$ sudo mount /dev/xvdg /goutha,
mount: /goutha,: mount point does not exist.
ubuntu@ip-172-31-10-43:~$ sudo mount /dev/xvdg /goutham
mount: /goutham: wrong fs type, bad option, bad superblock on /dev/xvdg, missing codepage or helper program, or other error.

Может кто-нибудь, пожалуйста, помогите мне с тем, что ошибкаЯ делаю это упражнение.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

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

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

https://www.terraform.io/docs/providers/aws/r/instance.html#user_data

  1. Создать шфайл, templates / mkfs.sh
#!/bin/bash
while ! ls /dev/xvdg > /dev/null
do 
    sleep 5
done

if [ `file -s /dev/xvdg | cut -d ' ' -f 2` = 'data' ]
then
    mkfs.xfs /dev/xvdg
fi
сценарий terraform,
data "template_file" "mkfs" {
  template = "${file("${path.module}/templates/mkfs.sh")}"
}

resource "aws_instance" "ec2" {
  ...
  user_data = "${data.template_file.mkfs}"
  ...
}

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

0 голосов
/ 11 июля 2019

Я подумал, что я пропустил создание файловой системы в томе, поскольку том, который я пытаюсь подключить, является пустым томом

так что это помогло мне

$ sudo mkfs -t xfs /dev/xvdg

и

sudo mkdir -p /goutham

sudo mount /dev/xvdg /goutham

Спасибо

...