in cdk/cdk-domainless-mode/cdk/cdk_stack.py [0:0]
def setup_linux_userdata (self, instance_tag: str, password: str,
domain_name: str,
key_name: str,
number_of_gmsa_accounts: int, rpm_file: str, s3_bucket: str):
#In instance, 'cat /var/lib/cloud/instance/user-data.txt'
# get random uuid string
random_uuid_str = str(uuid.uuid4())
ecs_cluster_name="ecs-load-test-" + random_uuid_str
user_data_script = '''
echo "ECS_GMSA_SUPPORTED=true" >> /etc/ecs/ecs.config
dnf install -y dotnet
dnf install -y realmd
dnf install -y oddjob
dnf install -y oddjob-mkhomedir
dnf install -y sssd
dnf install -y adcli
dnf install -y krb5-workstation
dnf install -y samba-common-tools
if aws s3 ls "s3://BUCKET_NAME/RPM_FILE" &> /dev/null; then
echo "RPM file found in S3 bucket. Transferring to EC2 instance..." >> /tmp/userdata.log
aws s3 cp s3://BUCKET_NAME/RPM_FILE .
dnf install -y ./RPM_FILE
if [ $? -ne 0 ]; then
echo "RPM file installation failed. Installing credentials-fetcher..." >> /tmp/userdata.log
dnf install -y credentials-fetcher
else
echo "RPM file installation successful." >> /tmp/userdata.log
fi
else
echo "RPM file not found in S3 bucket. Installing credentials-fetcher..." >> /tmp/userdata.log
dnf install -y credentials-fetcher
fi
systemctl enable credentials-fetcher
systemctl start credentials-fetcher
systemctl enable --now --no-block ecs.service
user_data_script += "echo ECS_CLUSTER=" + ecs_cluster_name + " >> /etc/ecs/ecs.config"
'''
user_data_script = user_data_script.replace('BUCKET_NAME', s3_bucket)
user_data_script = user_data_script.replace('RPM_FILE', rpm_file)
return user_data_script