Я пытаюсь динамически создать сопоставление файлов hosts со всеми частными IP-адресами моего экземпляра ec2, чтобы использовать его в качестве / etc / hosts на моем удаленном ssh-сервере ec2.
У меня есть экземпляры, помеченные их обычным «Именем», например. prod-database-01 и тег «Псевдоним», например. db-01. Цель состоит в том, чтобы иметь возможность использовать "ssh db-01" из моего окна ssh и иметь правильное сопоставление, даже если сервер был только что развернут или автоматически масштабирован.
Для любого экземпляра с состоянием "Работает" т.е. активные серверы, я пытаюсь заставить cli выводить имя, псевдоним и частный IP-адрес в JSON или что-то в этом роде, для чего я могу затем создать файл hosts.
Однако я застрял при попытке вывести второй тег «Псевдоним».
Это то, что у меня есть до сих пор, что выводит «Имя», «PrivateIP», «Состояние».
Хотите знать, как я могу выполнить итерацию и вывести дополнительный тег Alias?
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[ [Tags[?Key==`Name`].Value][0][0],PrivateIpAddress,State.Name ]' --output json
Он должен работать, если вы добавите запрос тега псевдонима, как вы сделали запрос имени:
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[ [Tags[?Key==`Name`].Value][0][0],[Tags[?Key==`Alias`].Value][0][0],PrivateIpAddress,State.Name ]' --output json