Ik wil de openbare IP-adressen van mijn EC2-instanties weergeven met Bash, gescheiden door een scheidingsteken (spatie of een nieuwe regel).
Ik heb geprobeerd de uitvoer naar jqte sturen met aws ec2 describe-instances | jq
, maar kan blijkbaar niet alleen de IP-adressen isoleren.
Kan dit worden gedaan door alleen aws
, door argumenten op te geven voor jq
, of iets anders?
Antwoord 1, autoriteit 100%
Direct vanaf de aws cli:
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].PublicIpAddress" \
--output=text
Antwoord 2, autoriteit 15%
- Filter op actieve instanties (je kunt dat deel laten vallen als je het niet nodig hebt)
- Query voor elk PublicIPaddress en de naamtag, afhandeling wanneer de naam niet is ingesteld
aws ec2 describe-instances \
--filter "Name=instance-state-name,Values=running" \
--query "Reservations[*].Instances[*].[PublicIpAddress, Tags[?Key=='Name'].Value|[0]]" \
--output text
Antwoord 3, autoriteit 6%
Het onderstaande commando geeft de IP-adressen weer van al uw actieve EC2-instanties
aws ec2 describe-instances | grep PublicIpAddress | grep -o -P "\d+\.\d+\.\d+\.\d+" | grep -v '^10\.'
Ik hoop dat dit je vraag beantwoordt…
Maar dit werkt zonder alle fouten over toegang:
wget -qO- http://instance-data/latest/meta-data/public-ipv4/|grep .
Antwoord 4, autoriteit 4%
U kunt een instantie gebruiken metadatazodat u de volgende opdracht kunt uitvoeren vanaf de ec2-instantie:
curl http://169.254.169.254/latest/meta-data/public-ipv4
en het geeft je het openbare IP-adres van de instantie. Als je het privé-IP wilt, voer je
curl http://169.254.169.254/latest/meta-data/local-ipv4
Antwoord 5, autoriteit 3%
aws ec2 describe-instances --query "Reservations[].Instances[][PublicIpAddress]"
Zie:
http://docs.aws.amazon.com/cli/ nieuwste/userguide/controlling-output.html