Получить пользовательские данные из виртуальной машины Azure Linux - PullRequest
0 голосов
/ 22 октября 2018

У меня есть вопрос относительно доступа к пользовательским данным с виртуальной машины 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

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Служба метаданных Azure Instance предоставляет информацию о запущенных экземплярах виртуальных машин, которые можно использовать для управления и настройки виртуальных машин.Сюда входит такая информация, как SKU, конфигурация сети и предстоящие события обслуживания.Дополнительные сведения о том, какой тип информации доступен, см. В категориях метаданных.

Служба метаданных экземпляра Azure является конечной точкой REST, доступной для виртуальных машин IaaS, созданных с помощью диспетчера ресурсов Azure.Конечная точка доступна по общеизвестному не маршрутизируемому IP-адресу (169.254.169.254), доступ к которому возможен только из виртуальной машины.

0 голосов
/ 01 мая 2019

Служба метаданных экземпляра Azure теперь позволяет виртуальной машине иметь доступ к своим пользовательским данным.Двоичные данные должны быть размером менее 64 КБ и предоставляться виртуальной машине в кодировке base64.Подробнее о том, как создать виртуальную машину с пользовательскими данными, см. В разделе Развертывание виртуальной машины с пользовательскими данными.

Извлечение пользовательских данных в службе метаданных экземпляра виртуальной машины предоставляет пользовательские данные для виртуальной машины в форме, закодированной в base64.В следующем примере декодируется строка в кодировке base64.

curl -H "Metadata:true" "http://169.254.169.254/metadata/instance/compute/customData?api-version=2019-02-01&&format=text" | base64 --decode

Справочный документ: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service#custom-data

0 голосов
/ 22 октября 2018

ОК нашел ответ.Не очень хорошо задокументировано.

https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/

/ var / lib / waagent / CustomData

...