anexar automaticamente o volume do EBS a uma instância Spot [duplicada]

4

Eu preciso de um armazenamento persistente nas terminações pontuais.

Minha abordagem para resolver o problema é

  1. Escreva um script de inicialização que anexa e monta o volume persistente

  2. Capture este estado e registre uma AMI privada

  3. Iniciar instâncias Spot com base na AMI privada

pesquisas neste fórum [ 1 ] sugere que este é o procedimento correto

Meu script de inicialização:

#!/bin/sh

echo "executing startup script"

# attach the EBS volume to this machine
aws ec2 attach-volume --volume-id vol-7bef1d96  --instance-id  $(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id ) --device /dev/xvdg

sleep  10

# mount the attached EBS volume
echo "mounting the  attached volume"
sudo mount /dev/xvdg1 /home/ubuntu/persistent/

#run script
echo "starting the  dummy program in background"
python2 persistent/dummyProgram.py &

O script funciona perfeitamente se executado manualmente. No entanto, quando é executado pelo cron, somente a instrução echo é executada

a tarefa crontab é

@reboot /path/to/startupScript.sh

Como resolvo este problema?

A entrada corrigida do crontab diz:

USER=username
PATH=content of $PATH
@reboot /path/to/startupScript.sh
    
por Soumy 24.08.2015 / 21:00

2 respostas

2

O motivo mais provável pelo qual os comandos não seriam executados quando invocado a partir de um script crontab é que eles não estão na variável de ambiente PATH. As entradas do Crontab são executadas com um conjunto mínimo de variáveis de ambiente por padrão.

    
por 24.08.2015 / 22:54
0

Enquanto cron poderia definitivamente fazer o trabalho, a maneira canônica de fazer isso é especificar um script user-data que é executado quando a instância spot é iniciada. Com o request-spot-instance da AWS CLI, isso é especificado em JSON usando o argumento --launch-specification .

link

Esta seção pode ser um pequeno script de shell e permite que você altere o volume-id caso seja necessário, em vez de codificar isso na AMI.

    
por 25.08.2015 / 03:19