Использование пользовательских данных cloud-init

У меня есть простые пользовательские данные cloud-init, которые я передаю в ec2. Я установил эти данные в своем экземпляре ec2, щелкнув правой кнопкой мыши по экземпляру и установив там пользовательские данные.

Ниже приведены мои пользовательские данные Cloud-init.

#cloud-config

runcmd:
 - [ ls, -l, / ]
 - [ sh, -xc, "echo $(date) ': hello world!'" ]
 - [ sh, -c, echo "=========hello world'=========" ]
 - [ touch, /home/ec2-user/hello.txt ]

final_message: "The system is finally up, after 10 seconds"

Я получил этот пример из здесь и добавил сенсорную команду

Я ожидал увидеть данные в /var/log/cloud-init.log. Но я его там не вижу. Также я не вижу ошибок и не вижу созданного файла hello.txt.

Что-то мне не хватает?

Я использую экземпляр amazon linux, а не экземпляр ubuntu


person Izaaz Yunus    schedule 23.05.2014    source источник
comment
AFAIK, пользовательские данные будут работать только во время запуска экземпляра (а не при каждой загрузке экземпляра). Поэтому я не уверен, как работает опция «Просмотр / изменение данных пользователя». В любом случае, мне просто надоело то, что вы сказали, и я мог воспроизвести проблему. Однако я мог видеть свои новые / измененные данные пользователя, когда запускал curl -L http://169.254.169.254/latest/user-data/ из экземпляра. Но данные пользователя не сделали то, что я ожидал. Может быть, потому что он будет работать только при запуске инстанса. Мне определенно интересно увидеть ответ на этот вопрос. +1.   -  person slayedbylucifer    schedule 23.05.2014
comment
Мое решение заключалось в том, чтобы отказаться от использования Amazon Linux вместе с cloud-init.   -  person jjanes    schedule 23.05.2014


Ответы (1)


Это синтаксическая ошибка в вашей третьей команде:

- [ sh, -c, echo "=========hello world'=========" ]

Это рабочие данные пользователя:

#cloud-config

runcmd:
 - [ ls, -l, / ]
 - [ sh, -xc, 'echo $(date) ": hello world!"' ]
 - [ sh, -c, 'echo "=========hello world========="' ]
 - [ touch, /home/ec2-user/hello.txt ]

final_message: "The system is finally up"

output : { all : '| tee -a /var/log/cloud-init-output.log' }

Обратите внимание, что журнал выполнения cloud-init отображается только в /var/log/cloud-init.log. вы должны увидеть результат в /var/log/cloud-init-output.log после указания директивы output.

person shawnzhu    schedule 01.06.2014
comment
Спасибо за подсказку по поводу cloud-init-output.log. В документации AWS это упоминается, но я пропустил это и не нашел ожидаемого cloud-init-output.log. - person Guss; 16.06.2014