Where does output from cloud-init (automatically runs scripts when starting up a virtual machine in the cloud, for example at Amazon EC2) go? I would like to know that my initialization scripts executed successfully.
There is a /var/log/cloud-init.log file, but it seems to contain only partial output (namely from the SSH key initialization).
Since
cloud-init
0.7.5 (released on Apr 1 2014), all output from cloud-init is captured by default to/var/log/cloud-init-output.log
. This default logging configuration was added in a commit from Jan 14 2014:To add support for previous versions of
cloud-init
, you can manually add this configuration manually to your Cloud Config Data.I couldn't find way a "native" way for doing that. Before passing the script to cloud-init, I've simply (automatically) appended a
>> /tmp/init-script-log 2>&1
to each line of the script, to forward stout and stderr to a file.The log is stored in systemd:
On my EC2 box (running the Amazon Linux AMI) it's stored in /var/log/cloud-init.log
On the Centos 7 AMI I am using, the output of my user data script is in
/var/log/cloud-init-output.log
.I've found log output in /var/log/messages (CentOS7 AWS AMI)
First of all let me congratulate you on using cloud-init, it's a quite amazing tool!
There's no way yet to setup a log level but by default cloud-init will run with DEBUG enabled.
It's still in heavy development, I expect it to be a lot better by the release of Ubuntu Natty