কীভাবে অটোস্কালিং গোষ্ঠীগুলির আইপি অ্যাড্রেসগুলি পাবেন


16

আমি কীভাবে একটি অটোস্কেলিং গোষ্ঠীর অংশ হিসাবে সমস্ত দৃষ্টান্তের ব্যক্তিগত আইপি ঠিকানা পেতে পারি। আমি সমস্ত দৃষ্টান্তে কিছু অপারেশন করার চেষ্টা করছি যা একটি স্বতঃআকোষ গ্রুপের অংশ।

উত্তর:


16

আইপি তালিকা পেতে আমি নীচের মতো একটি ছোট স্ক্রিপ্ট লিখেছি:

#! / বিন / ব্যাশ
আমি-এর জন্য অটোস্কলিং-এর বর্ণনা-অটো-স্কেলিং-গ্রুপগুলি - অটো-স্কেলিং-গোষ্ঠী-নাম ASGName | grep -i উদাহরণস্বরূপ | awk '{মুদ্রণ $ 2}' | কাট-ডি ',' -ফ 1 | sed -e 's / "// g'`
করা
aws ec2 বর্ণনা-দৃষ্টান্তগুলি - ইনস্ট্যান্ট-আইডস $ i | গ্রেপ -i প্রাইভেটআইপিএড্রেস | awk '{মুদ্রণ $ 2}' | মাথা -1 | কাট-ডি "," -ফ 1
সম্পন্ন;

আমার সমস্ত হাত দিয়ে upvoting
জামিল গ্র্যান্ড

ডাউনভোট কারণ
জেসনকে গ্রেপ

আপনি jqজসনকে পার্স করতে কমান্ডটি ব্যবহার করতে পারেন
চেজ টি।

নিখুঁত উত্তর, আপনাকে ধন্যবাদ।
জন হামফ্রেস - w00te

10

বিকল্প হিসাবে, আমার সংস্করণটি কোনও জকিএইচ / আওক / সেড / কাট ছাড়াই

$ aws autoscaling describe-auto-scaling-instances --region us-east-1 --output text \
--query "AutoScalingInstances[?AutoScalingGroupName=='ASG-GROUP-NAME'].InstanceId" \
| xargs -n1 aws ec2 describe-instances --instance-ids $ID --region us-east-1 \
--query "Reservations[].Instances[].PrivateIpAddress" --output text
10.228.43.71
10.230.178.160
10.228.15.171
10.233.160.163
10.228.18.123
10.225.222.195
10.237.149.97
10.136.163.109
10.152.35.71
10.233.157.230

আরও অনুকূলিতকরণ সংস্করণ

# aws ec2 describe-instances --region us-east-1 --instance-ids \
$(aws autoscaling describe-auto-scaling-instances --region us-east-1 --output text \
--query "AutoScalingInstances[?AutoScalingGroupName=='ASG_NAME'].InstanceId") \
--query "Reservations[].Instances[].PrivateIpAddress"
[
    "10.230.178.160",
    "10.152.35.71",
    "10.233.157.230",
    "10.237.149.97",
    "10.228.15.171",
    "10.136.163.109",
    "10.225.222.195",
    "10.233.160.163",
    "10.228.43.71",
    "10.228.18.123"
]

আউটপুটে আপনার যদি কেবল একটি সরল তালিকা প্রয়োজন হয় তবে আপনি অন্য পাইপলাইন যুক্ত করতে পারেন

| jq -r '.[]'


এটি অনেকগুলি "বর্ননা-দৃষ্টান্তগুলি" অনুরোধ তৈরি করে, আমার কেবলমাত্র তার অর্থ তৈরি করে, আপনি এটি কেবল দ্বাদশ তৈরি করতে পারেন তবে আপনাকে xargs ব্যবহার বন্ধ করতে হবে
xenoterracide

this creates many "describe-instances" requestsএবং? যতদূর আমি বুঝতে পেরেছি যে আপনার কোয়েরিটি কেবলমাত্র ট্যাগগুলির সাথে কাজ করবে এটি সর্বজনীন নয়, তবে
ALex_hha

আপনার সর্বজনীন নয় হয় আমি আমার প্রশ্নগুলিতে নামটি আসলে ব্যবহার করতে পারি না এটি একটি উত্পন্ন নাম যা একটি স্বয়ংক্রিয় সিস্টেমের অংশ।
বিন্দুটি

আসলে ওপি তার অনুসন্ধানের জন্য কী মানদণ্ড প্রয়োজন তা নির্দিষ্ট করে নি, তাই এটি ধূসর অঞ্চল :)
ALex_hha

হ্যাঁ আমি জানি তাই আমি কেবলই পরামর্শ
দিচ্ছিলাম

4

এডাব্লুএস এপিআইয়ের জন্য সূক্ষ্ম ডকুমেন্টেশন একবার দেখুন। উদাহরণস্বরূপ, অ্যাডস-ক্লাইট সরঞ্জামগুলি স্ব-স্কেলিং- বর্ণনা এবং স্বয়ংক্রিয়ভাবে স্কেলিং-দৃষ্টান্তগুলি দারুণভাবে দেখায় এবং ec2 বর্ণনা-দৃষ্টান্তগুলিতে থাকে


1

রমেশের উত্তরের অনুরূপ বর্তমান দৃষ্টান্ত এবং এর গোষ্ঠীর উপর ভিত্তি করে একটি দুর্দান্ত ছোট স্ক্রিপ্ট is আপনার অঞ্চলটি সেট করা নিশ্চিত করুন এবং এই ক্ষেত্রে আমি বর্তমান ঘটনাটি এড়িয়ে চলেছি (ক্লাস্টারিংয়ের জন্য ব্যবহৃত)। প্রয়োজনে আপনি প্রাইভেটআইপিএড্রেসগুলি সর্বজনীনতেও পরিবর্তন করতে পারেন।

#!/bin/bash
wget http://s3.amazonaws.com/ec2metadata/ec2-metadata
sudo chmod u+x ec2-metadata
INSTANCE_ID=$(./ec2-metadata | grep instance-id | awk 'NR==1{print $2}')
AG_NAME=$(aws autoscaling describe-auto-scaling-instances --instance-ids ${INSTANCE_ID} --region eu-west-1 --query AutoScalingInstances[].AutoScalingGroupName --output text)
for ID in $(aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names ${AG_NAME} --region eu-west-1 --query AutoScalingGroups[].Instances[].InstanceId --output text);
do
    if [ "${ID}" == ${INSTANCE_ID} ] ; then
        continue;
    fi
    IP=$(aws ec2 describe-instances --instance-ids $ID --region eu-west-1 --query Reservations[].Instances[].PrivateIpAddress --output text)
    # Do what you want with ${IP} here
done

1

আপনি jqআউটপুটকে বিশ্লেষণ করতেও ব্যবহার করতে পারেন , নোড স্ট্রাকচারটি পার্স করার জন্য ডাব্লু, গ্রেপ, বা সেড ইত্যাদি ব্যবহার করা খারাপ ধারণা, এটি এইচটিএমএলকে বিশ্লেষণের জন্য নিয়মিত অভিব্যক্তি ব্যবহার করার পক্ষে খারাপ ধারণা।

$ aws ec2 describe-instances \
--instance-ids $(aws autoscaling describe-auto-scaling-groups \
    |jq -r '.AutoScalingGroups[]| select( .Tags[].Value == "playground").Instances[].InstanceId' \
    |paste -s -d" ") \
| jq -r '.Reservations[].Instances[].PrivateIpAddress'
192.169.0.202
192.169.0.177
192.169.0.160

জেএফওয়াইআই: আঃ ক্লাইম অ্যালরেডি - প্রশ্ন বিকল্পের মাধ্যমে জসনকে ফিল্টার করতে পারে।
ALex_hha

ঠিক একইভাবে কাজ করছে বলে মনে হচ্ছে না
xenoterracide

তবে হ্যাঁ, এটি করার অন্য উপায়।
xenoterracide

শুধু আমার সংস্করণটি একবার দেখুন
ALex_hha

আমি এটি এখানে রেখে যাচ্ছি, কারণ এটি সর্বোত্তম উত্তর না হলেও, আমি মনে করি jqএটি একটি দরকারী সরঞ্জাম, এবং এটিকে এখানে রেখে দিলে অপ্স লোকেরা এটি আবিষ্কার করতে পারে, এমনকি যদি অ্যামাজনের সাহায্যে আপনি awsকমান্ডটি
দিয়েও

0

আপনি ইসি 2 -> অটো স্কেলিং গোষ্ঠী -> উদাহরণস ট্যাবের অধীনে এডাব্লুএস ওয়েব কনসোল ইউআইতেও দেখতে পারেন। আপনি বর্তমান এএসজির অধীনে সমস্ত দৃষ্টান্ত দেখতে পাবেন, তারপরে আপনি আইপি পেতে প্রতিটি ইনস্ট্যান্স-আইডিতে ক্লিক করতে পারেন (এটি আপনাকে বিভিন্ন দর্শনে পুনর্নির্দেশ করবে))


হ্যাঁ, তবে আমি সম্পূর্ণ তালিকাটি চাই, আমার কাছে 100 টিরও বেশি উদাহরণ রয়েছে এবং কিছু স্টাফ প্রয়োগের জন্য আইপি'র একটি তালিকা চাই।
রমেশ কুমার

নীচে ছোট লিপিটি আইপি তালিকা পেতে আমি লিখেছিলাম।
রমেশ কুমার

সেক্ষেত্রে আমি ক্লাইটি ব্যবহার করব, আপনি সঠিক।
মাইন্ড ব্লোনে

0
$instanceIPs = aws ec2 describe-instances --filters "Name=tag:Name,Values=<name-of-your-auto-scaling-group>" --query 'Reservations[].Instances[].PrivateDnsName' --output text

$instanceIPsArray = $instanceIPs.Trim() -split("`t")
foreach($ip in $instanceIPsArray)
{
    //Do something
}

0

এটি একটি এএসজিতে সমস্ত প্রাইভেট আইপসকে ফিরিয়ে দেবে

PRIVATEIPS=$(aws ec2 describe-instances --filters "Name=tag:aws:autoscaling:groupName,Values=$(aws autoscaling describe-auto-scaling-instances --instance-ids="$(ec2metadata --instance-id)" | jq -r '.AutoScalingInstances[].AutoScalingGroupName')" --query 'Reservations[].Instances[].PrivateIpAddress' --output text --region $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/\(.*\)[a-z]/\1/'))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.