У меня есть задача заменить существующее внешнее устройство экземпляра AWS
ec2
для перемещения данных между экземплярами.
Задача останавливает целевой экземпляр ec2, заменяет внешнее устройство, отсоединяя существующее устройство и подключая устройство другого экземпляра ec2, а затем снова запускает экземпляр ec2. Нет проблем с автоматизацией этих шагов, но у меня есть некоторые проблемы при установке устройства после описанной выше операции.
Я пытаюсь добавить метку файловой системы на устройство и затем смонтировать ее. Однако добавление метки с помощью команды e2label
не работает должным образом в этом сценарии.
У меня есть задача Ansible
:
- name: Ensure external device has correct label
become: true
shell: e2label /dev/xvdf "dev-external" && e2label /dev/xvdf
register: device_label
retries: 15
delay: 5
until: device_label.stdout == "dev-external"
- name: Debug external device label soon after adding label
debug:
msg: "{{ device_label.stdout }}"
- name: Get external device label subsequently
become: true
shell: e2label /dev/xvdf
register: device_label_subsequently
- name: Debug external device label subsequently
debug:
msg: "{{ device_label_subsequently.stdout }}"
Результаты, как показано ниже:
TASK [label-external-device : Ensure external device has correct label] ***
changed: [<host_ip>]
TASK [label-external-device : Debug external device label soon after adding label] ***
ok: [<host_ip>] => {
"msg": "dev-external"
}
TASK [label-external-device : Get external device label subsequently] ***
changed: [<host_ip>]
TASK [label-external-device : Debug external device label subsequently] ***
ok: [<host_ip>] => {
"msg": ""
}
Как вы можете видеть, добавление метки с помощью e2label
, похоже, завершается успешно и возвращает метку устройства как dev-external
, когда вызывается как одна команда оболочки. Однако при повторном запросе метка устройства исчезает или даже отклоняется, чтобы быть фактически установленной в файловой системе.
Эта проблема не возникает при перезагрузке экземпляров ec2 и повторной попытке.
Я знаю, что есть несколько других способов монтировать устройство по имени устройства или UUID
, но из соображений совместимости я хотел бы монтировать устройства по меткам их файловой системы.
Как правильно добавить метку в файловую систему устройства тома AWS EBS в Linux?