У меня есть вопрос относительно доступа к пользовательским данным с виртуальной машины Azure Linux после загрузки.В настоящее время я использую Azure GO SDK для программного создания виртуальных машин на основе CentOS Linux 7.5.Для каждой виртуальной машины я прилагаю уникальный набор переменных среды, чтобы скрипты загрузочной службы могли получить доступ к среде.Пользовательские данные - это только набор переменных среды, а не настоящие сценарии.
В профиле ОС я заполняю строку в кодировке base64 следующим образом:
OsProfile: compute.OSProfile{
ComputerName: to.StringPtr(p.InstanceName),
AdminUsername: to.StringPtr(p.UserName),
LinuxConfiguration: compute.LinuxConfiguration{
SSH: compute.SSHConfiguration{
PublicKeys: []compute.SSHPublicKey{
{
Path: to.StringPtr(
fmt.Sprintf("/home/%s/.ssh/authorized_keys",
p.UserName)),
KeyData: to.StringPtr(p.SshPublicKey),
},
},
},
},
CustomData: to.StringPtr(base64.StdEncoding.EncodeToString([]byte(p.UserData))),
},
Мне не ясно, как получить доступ к пользовательским данным изнутри виртуальной машины.
В случае AWS мы используем пользовательские данные экземпляра и получаем доступ к данным из экземпляра EC2 следующим образом:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
http://169.254.169.254/latest/user-data