Как получить настоящее имя устройства EBS для форматирования и монтирования в Ansible - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь использовать Ansible для создания, присоединения, форматирования и подключения тома EBS к экземпляру EC2. Когда я создаю и присоединяю том, имя не совпадает в экземпляре. Как я могу получить правильное имя?

Я попытался изменить имя_устройства, чтобы оно соответствовало тому, что AWS устанавливает для него, но это дает мне «... не правильное имя устройства EBS». ошибка.

Вот что я пытаюсь:

---
- name: Get instance ID
  ec2_metadata_facts:
- debug:
    msg: "Adding EBS to {{ ansible_ec2_instance_id }}"
- name: Create EBS
  delegate_to: 127.0.0.1
  run_once: true
  ec2_vol:
    instance: "{{ ansible_ec2_instance_id }}"
    volume_size: '5'
    region: 'us-east-1'
    delete_on_termination: yes
    name: 'wbt_opt_drive'
  register: ec2_vol
- name: Printing the volume information
  debug: var=ec2_vol

Информация о томе возвращает это:

"device": "/dev/sdf"

Если я пытаюсь добавить файловую систему, / dev / sdf не существует. Проверка экземпляра это то, что я запускаю lsblk

nvme1n1     259:1    0    8G  0 disk 
└─nvme1n1p1 259:2    0    8G  0 part /
nvme2n1     259:3    0    5G  0 disk 

Если я изменю свою задачу на использование имени_устройства, по умолчанию для AWS будет:

---
- name: Get instance ID
  ec2_metadata_facts:
- debug:
    msg: "Adding EBS to {{ ansible_ec2_instance_id }}"
- name: Create EBS
  delegate_to: 127.0.0.1
  run_once: true
  ec2_vol:
    instance: "{{ ansible_ec2_instance_id }}"
    volume_size: '5'
    region: 'us-east-1'
    delete_on_termination: yes
    name: 'wbt_opt_drive'
    device_name: '/dev/nvme2n1'
  register: ec2_vol
- name: Printing the volume information
  debug: var=ec2_vol

Я получаю эту ошибку:

/dev/nvme2n1 is not a valid EBS device name.

Из документов я понимаю, что делает AWS (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html / https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html)

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

...