OpenStack Boot Volume Пример: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 34: Строка 34:
   
 
<PRE>
 
<PRE>
for ATTACHED_VOLUME_ID in $(./openstack server show mmazur-test -f yaml | yq '.volumes[].id' );
+
for ATTACHED_VOLUME_ID in $(openstack server show mmazur-test -f yaml | yq '.volumes[].id' );
 
do
 
do
 
echo "Volume: ${ATTACHED_VOLUME_ID}";
 
echo "Volume: ${ATTACHED_VOLUME_ID}";
SIZE=$(./openstack volume show ${ATTACHED_VOLUME_ID} -f yaml | yq '.size');
+
SIZE=$(openstack volume show ${ATTACHED_VOLUME_ID} -f yaml | yq '.size');
 
if [ "${SIZE}" == "20" ];
 
if [ "${SIZE}" == "20" ];
 
then
 
then
Строка 43: Строка 43:
 
fi;
 
fi;
 
done
 
done
  +
</PRE>
  +
<PRE>
  +
Volume: 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0
 
</PRE>
 
</PRE>
 
Создать временный volume так как напрямую создать image с <code>status: in use</code> <code>volume</code> нельзя (это вероятно баг)
 
Создать временный volume так как напрямую создать image с <code>status: in use</code> <code>volume</code> нельзя (это вероятно баг)
  +
  +
<PRE>
  +
openstack volume create --source 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0 --force TMP-Vol-mmazur-20250903
  +
</PRE>

Версия 12:23, 3 сентября 2025


Загрузка с Volume

Задача:

  • Создать загрузочный image с пред-установленным софтом

Запустить сервер

Чуть более полное описание, если хочется указать размер загрузочного диска отличного от того что описан в flavor

./openstack \
    --os-compute-api-version 2.67 \
    server create \
    --flavor m1.xlarge \
    --network fixed-net \
    --security-group allow_all \
    --key-name mmazur \
    --block-device source_type=image,uuid=c84178c9-eeb0-4dc9-915f-2fc5ee83044e,volume_size=20,volume_type=volumes-nvme,boot_index=0,delete_on_termination=true \
    mmazur-test
  • source_type=image создать блочное устройство (volume!) из image
  • uuid=c84178c9-eeb0-4dc9-915f-2fc5ee83044e id того образа из которого создавать
  • volume_size=20 размер
  • volume_type=volumes-nvme тип (смотреть доступные openstack volume type list)
  • boot_index=0
  • delete_on_termination=true удалить при удалении сервера

Настройка

Тут я не описываю шаги - так как для каждого случая это разные шаги :)

Создание временного volume

В моем случае мне нужно было найти образ размером 20Gb (рутовый вольюм) это мой частный случай

for ATTACHED_VOLUME_ID in $(openstack server show  mmazur-test -f yaml  | yq '.volumes[].id' ); 
do 
    echo "Volume: ${ATTACHED_VOLUME_ID}"; 
    SIZE=$(openstack volume show ${ATTACHED_VOLUME_ID} -f yaml | yq '.size');
    if [ "${SIZE}" == "20" ];
    then
      break;
    fi;
done
Volume: 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0

Создать временный volume так как напрямую создать image с status: in use volume нельзя (это вероятно баг)

openstack volume create --source 74cf8a7a-6b18-4ecb-b911-80ebcdaf82d0 --force TMP-Vol-mmazur-20250903