|
1 | | -#!/bin/bash |
| 1 | +#cloud-config |
| 2 | +runcmd: |
| 3 | + - | |
| 4 | + echo "Waiting for network..." |
| 5 | + until ping -c1 8.8.8.8 >/dev/null 2>&1; do |
| 6 | + echo "Network not ready, retrying in 10 seconds..." |
| 7 | + sleep 10 |
| 8 | + done |
| 9 | + echo "Network ready, starting..." |
| 10 | + username=cd3user |
| 11 | + logfile="/$username/mount_path/installToolkit.log" |
| 12 | + toolkit_dir="/tmp/githubCode" |
| 13 | + mount_dir="/$username/mount_path" |
| 14 | + sudo mkdir -p /$mount_dir/tenancies |
| 15 | + sudo mkdir -p /$mount_dir/oci_tools |
2 | 16 |
|
3 | | -username=cd3user |
4 | | -logfile="/$username/mount_path/installToolkit.log" |
5 | | -toolkit_dir="/tmp/githubCode" |
6 | | -mount_dir="/$username/mount_path" |
7 | | -sudo mkdir -p /$mount_dir/tenancies |
8 | | -sudo mkdir -p /$mount_dir/oci_tools |
| 17 | + tenancyconfig_properties="/$mount_dir/oci_tools/cd3_automation_toolkit/user-scripts/tenancyconfig.properties" |
| 18 | + connectOCI_properties="/$mount_dir/oci_tools/cd3_automation_toolkit/connectOCI.properties" |
| 19 | + start=$(date +%s.%N) |
| 20 | + sudo sh -c "echo '########################################################################' >> /etc/motd" |
| 21 | + sudo sh -c "echo ' Welcome to CD3 Automation Toolkit WorkVM' >> /etc/motd" |
| 22 | + sudo sh -c "echo '########################################################################' >> /etc/motd" |
| 23 | + sudo sh -c "echo 'Please wait for couple of minutes for container to become active if you' >> /etc/motd" |
| 24 | + sudo sh -c "echo 'are logging in for first time to after VM Provisioning. Toolkit initial' >> /etc/motd" |
| 25 | + sudo sh -c "echo 'setup log is present at - /cd3user/mount_path/installToolkit.log' >> /etc/motd" |
| 26 | + sudo sh -c "echo 'To verify podman container run command: sudo podman ps -a' >> /etc/motd" |
| 27 | + sudo sh -c "echo 'To connect to container run command: sudo podman exec -it cd3_toolkit bash' >> /etc/motd" |
| 28 | + sudo sh -c "echo 'if you want to stop seeing these messages at login remove in /etc/motd' >> /etc/motd" |
| 29 | + sudo sh -c "echo '###########################################################################' >> /etc/motd" |
9 | 30 |
|
10 | | -tenancyconfig_properties="/$mount_dir/oci_tools/cd3_automation_toolkit/user-scripts/tenancyconfig.properties" |
11 | | -connectOCI_properties="/$mount_dir/oci_tools/cd3_automation_toolkit/connectOCI.properties" |
12 | | -start=$(date +%s.%N) |
13 | | -sudo sh -c "echo '########################################################################' >> /etc/motd" |
14 | | -sudo sh -c "echo ' Welcome to CD3 Automation Toolkit WorkVM' >> /etc/motd" |
15 | | -sudo sh -c "echo '########################################################################' >> /etc/motd" |
16 | | -sudo sh -c "echo 'Please wait for couple of minutes for container to become active if you' >> /etc/motd" |
17 | | -sudo sh -c "echo 'are logging in for first time to after VM Provisioning. Toolkit initial' >> /etc/motd" |
18 | | -sudo sh -c "echo 'setup log is present at - /cd3user/mount_path/installToolkit.log' >> /etc/motd" |
19 | | -sudo sh -c "echo 'To verify podman container run command: sudo podman ps -a' >> /etc/motd" |
20 | | -sudo sh -c "echo 'To connect to container run command: sudo podman exec -it cd3_toolkit bash' >> /etc/motd" |
21 | | -sudo sh -c "echo 'if you want to stop seeing these messages at login remove in /etc/motd' >> /etc/motd" |
22 | | -sudo sh -c "echo '###########################################################################' >> /etc/motd" |
| 31 | + stop_exec () { |
| 32 | + if [[ $? -ne 0 ]] ; then |
| 33 | + echo $? >> $logfile 2>&1 |
| 34 | + echo "Error encountered in CD3 Automation Toolkit Container Setup. Please do setup Manually" >> $logfile 2>&1 |
| 35 | + exit 1 |
| 36 | + fi |
| 37 | + } |
23 | 38 |
|
24 | | -stop_exec () { |
25 | | -if [[ $? -ne 0 ]] ; then |
26 | | - echo $? >> $logfile 2>&1 |
27 | | - echo "Error encountered in CD3 Automation Toolkit Container Setup. Please do setup Manually" >> $logfile 2>&1 |
28 | | - exit 1 |
29 | | -fi |
30 | | -} |
| 39 | + #sudo systemctl stop oracle-cloud-agent.service >> $logfile 2>&1 |
| 40 | + #cd /etc/yum.repos.d/ |
| 41 | + #for i in $( ls *.osms-backup ); do sudo mv $i ${i%.*}; done |
| 42 | + echo "***SELinux permissive***" >> $logfile 2>&1 |
| 43 | + sudo setenforce 0 |
| 44 | + sudo sed -c -i "s/\SELINUX=.*/SELINUX=permissive/" /etc/sysconfig/selinux |
31 | 45 |
|
32 | | -#sudo systemctl stop oracle-cloud-agent.service >> $logfile 2>&1 |
33 | | -#cd /etc/yum.repos.d/ |
34 | | -#for i in $( ls *.osms-backup ); do sudo mv $i ${i%.*}; done |
35 | | -echo "***SELinux permissive***" >> $logfile 2>&1 |
36 | | -sudo setenforce 0 |
37 | | -sudo sed -c -i "s/\SELINUX=.*/SELINUX=permissive/" /etc/sysconfig/selinux |
| 46 | + echo "***cd3user setup***" >> $logfile 2>&1 |
| 47 | + sudo useradd -u 1001 $username |
| 48 | + sudo sh -c "echo $username ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$username" |
| 49 | + sudo chmod 0440 /etc/sudoers.d/$username |
| 50 | + sudo chmod 775 -R /$username |
| 51 | + sudo chown -R $username:$username /$username |
| 52 | + sudo usermod -aG $username opc |
| 53 | + sudo mkdir -p /home/$username/.ssh |
| 54 | + sudo chown -R $username:$username /home/$username/.ssh |
| 55 | + sudo chmod 700 /home/$username/.ssh |
| 56 | + sudo cp /home/opc/.ssh/authorized_keys /home/$username/.ssh/authorized_keys |
| 57 | + sudo chown -R $username:$username /home/$username/.ssh/authorized_keys |
| 58 | + sudo chmod 600 /home/$username/.ssh/authorized_keys |
38 | 59 |
|
39 | | -echo "***cd3user setup***" >> $logfile 2>&1 |
40 | | -sudo useradd -u 1001 $username |
41 | | -sudo sh -c "echo $username ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$username" |
42 | | -sudo chmod 0440 /etc/sudoers.d/$username |
43 | | -sudo chmod 775 -R /$username |
44 | | -sudo chown -R $username:$username /$username |
45 | | -sudo usermod -aG $username opc |
46 | | -sudo mkdir -p /home/$username/.ssh |
47 | | -sudo chown -R $username:$username /home/$username/.ssh |
48 | | -sudo chmod 700 /home/$username/.ssh |
49 | | -sudo cp /home/opc/.ssh/authorized_keys /home/$username/.ssh/authorized_keys |
50 | | -sudo chown -R $username:$username /home/$username/.ssh/authorized_keys |
51 | | -sudo chmod 600 /home/$username/.ssh/authorized_keys |
| 60 | + echo "***Install git***" >> $logfile 2>&1 |
| 61 | + sudo yum --disablerepo=ol7_ksplice --disablerepo=ol8_ksplice --disablerepo=ol8_x86_64_ksplice --disablerepo=ol9_ksplice --disablerepo=ol9_x86_64_ksplice install -y git >> $logfile 2>&1 |
| 62 | + stop_exec |
52 | 63 |
|
53 | | -echo "***Install git***" >> $logfile 2>&1 |
54 | | -sudo yum --disablerepo=ol7_ksplice --disablerepo=ol8_ksplice --disablerepo=ol8_x86_64_ksplice --disablerepo=ol9_ksplice --disablerepo=ol9_x86_64_ksplice install -y git >> $logfile 2>&1 |
55 | | -stop_exec |
| 64 | + echo "***Install Podman***" >> $logfile 2>&1 |
| 65 | + echo "########################################################" >> $logfile 2>&1 |
| 66 | + osrelase=`cat /etc/oracle-release` |
| 67 | + if [[ $osrelase == "Oracle Linux Server release 7".* ]] ; then |
| 68 | + sudo yum --disablerepo=ol7_ksplice install -y podman podman-docker >> $logfile 2>&1 |
| 69 | + stop_exec |
| 70 | + else |
| 71 | + sudo yum --disablerepo=ol8_ksplice --disablerepo=ol8_x86_64_ksplice --disablerepo=ol9_ksplice --disablerepo=ol9_x86_64_ksplice install -y podman podman-docker >> $logfile 2>&1 |
| 72 | + stop_exec |
| 73 | + sudo systemctl enable podman.service |
| 74 | + sudo systemctl start podman.service |
| 75 | + stop_exec |
| 76 | + fi |
| 77 | + sudo podman --version >> $logfile 2>&1 || true |
56 | 78 |
|
57 | | -echo "***Install Podman***" >> $logfile 2>&1 |
58 | | -echo "########################################################" >> $logfile 2>&1 |
59 | | -osrelase=`cat /etc/oracle-release` |
60 | | -if [[ $osrelase == "Oracle Linux Server release 7".* ]] ; then |
61 | | - sudo yum --disablerepo=ol7_ksplice install -y podman podman-docker >> $logfile 2>&1 |
62 | | - stop_exec |
63 | | -else |
64 | | - sudo yum --disablerepo=ol8_ksplice --disablerepo=ol8_x86_64_ksplice --disablerepo=ol9_ksplice --disablerepo=ol9_x86_64_ksplice install -y podman podman-docker >> $logfile 2>&1 |
65 | | - stop_exec |
66 | | - sudo systemctl enable podman.service |
67 | | - sudo systemctl start podman.service |
| 79 | + echo "***Download Toolkit***" >> $logfile 2>&1 |
| 80 | + sudo git clone https://github.com/oracle-devrel/cd3-automation-toolkit.git -b develop $toolkit_dir >> $logfile 2>&1 |
| 81 | + cp -r $toolkit_dir/cd3_automation_toolkit /$mount_dir/oci_tools/ |
| 82 | + cp -r $toolkit_dir/othertools /$mount_dir/oci_tools/ |
| 83 | + sudo chown -R $username:$username /$mount_dir/oci_tools/ |
68 | 84 | stop_exec |
69 | | -fi |
70 | | -sudo podman --version >> $logfile 2>&1 || true |
71 | | - |
72 | | -echo "***Download Toolkit***" >> $logfile 2>&1 |
73 | | -sudo git clone https://github.com/oracle-devrel/cd3-automation-toolkit.git $toolkit_dir >> $logfile 2>&1 |
74 | | -cp -r $toolkit_dir/cd3_automation_toolkit /$mount_dir/oci_tools/ |
75 | | -cp -r $toolkit_dir/othertools /$mount_dir/oci_tools/ |
76 | | -sudo chown -R $username:$username /$mount_dir/oci_tools/ |
77 | | -stop_exec |
78 | 85 |
|
79 | | -curl -H "Authorization: Bearer Oracle" -L http://169.254.169.254/opc/v2/instance/ -o /tmp/metadata.json |
80 | | -metadata=$(cat /tmp/metadata.json) |
81 | | -user_id=$(echo "$metadata" | jq -r '.metadata.current_user_ocid') |
82 | | -cust_name=$(echo "$metadata" | jq -r '.metadata.tenancy_name') |
83 | | -tenancy_id=$(echo "$metadata" | jq -r '.metadata.tenancy_ocid') |
84 | | -config_region=$(echo "$metadata" | jq -r '.metadata.config_region') |
85 | | -sudo sed -c -i "s/prefix=.*/prefix=$cust_name/" $tenancyconfig_properties |
86 | | -sudo sed -c -i "s/tenancy_ocid=.*/tenancy_ocid=$tenancy_id/" $tenancyconfig_properties |
87 | | -sudo sed -c -i "s/region=.*/region=$config_region/" $tenancyconfig_properties |
88 | | -sudo sed -c -i "s/user_ocid=.*/user_ocid=$user_id/" $tenancyconfig_properties |
| 86 | + curl -H "Authorization: Bearer Oracle" -L http://169.254.169.254/opc/v2/instance/ -o /tmp/metadata.json |
| 87 | + metadata=$(cat /tmp/metadata.json) |
| 88 | + user_id=$(echo "$metadata" | jq -r '.metadata.current_user_ocid') |
| 89 | + cust_name=$(echo "$metadata" | jq -r '.metadata.tenancy_name') |
| 90 | + tenancy_id=$(echo "$metadata" | jq -r '.metadata.tenancy_ocid') |
| 91 | + config_region=$(echo "$metadata" | jq -r '.metadata.config_region') |
| 92 | + sudo sed -c -i "s/prefix=.*/prefix=$cust_name/" $tenancyconfig_properties |
| 93 | + sudo sed -c -i "s/tenancy_ocid=.*/tenancy_ocid=$tenancy_id/" $tenancyconfig_properties |
| 94 | + sudo sed -c -i "s/region=.*/region=$config_region/" $tenancyconfig_properties |
| 95 | + sudo sed -c -i "s/user_ocid=.*/user_ocid=$user_id/" $tenancyconfig_properties |
89 | 96 |
|
90 | | -sudo sed -c -i "s/prefix=.*/prefix=$cust_name/" $connectOCI_properties |
91 | | -sudo sed -c -i "s/tenancy_ocid=.*/tenancy_ocid=$tenancy_id/" $connectOCI_properties |
92 | | -sudo sed -c -i "s/region=.*/region=$config_region/" $connectOCI_properties |
93 | | -sudo sed -c -i "s/user_ocid=.*/user_ocid=$user_id/" $connectOCI_properties |
| 97 | + sudo sed -c -i "s/prefix=.*/prefix=$cust_name/" $connectOCI_properties |
| 98 | + sudo sed -c -i "s/tenancy_ocid=.*/tenancy_ocid=$tenancy_id/" $connectOCI_properties |
| 99 | + sudo sed -c -i "s/region=.*/region=$config_region/" $connectOCI_properties |
| 100 | + sudo sed -c -i "s/user_ocid=.*/user_ocid=$user_id/" $connectOCI_properties |
94 | 101 |
|
95 | | -echo "***Building container image***" >> $logfile 2>&1 |
96 | | -cd /tmp |
97 | | -cd githubCode |
98 | | -sudo podman build --platform linux/amd64 -t cd3_toolkit -f Dockerfile --pull --no-cache . >> $logfile 2>&1 |
99 | | -stop_exec |
100 | | -sudo podman images >> $logfile 2>&1 |
| 102 | + echo "***Building container image***" >> $logfile 2>&1 |
| 103 | + cd /tmp |
| 104 | + cd githubCode |
| 105 | + sudo podman build --platform linux/amd64 -t cd3_toolkit -f Dockerfile --pull --no-cache . >> $logfile 2>&1 |
| 106 | + stop_exec |
| 107 | + sudo podman images >> $logfile 2>&1 |
101 | 108 |
|
102 | | -echo "***Setting Up podman Container***" >> $logfile 2>&1 |
103 | | -sudo podman run --name cd3_toolkit -it -p 8443:8443 -d -v /cd3user/mount_path:/cd3user cd3_toolkit bash >> $logfile 2>&1 |
104 | | -stop_exec |
105 | | -sudo podman ps -a >> $logfile 2>&1 |
106 | | -echo "Connect to Container using command - sudo podman exec -it cd3_toolkit bash " >> $logfile 2>&1 |
| 109 | + echo "***Setting Up podman Container***" >> $logfile 2>&1 |
| 110 | + sudo podman run --name cd3_toolkit -it -p 8443:8443 -d -v /cd3user/mount_path:/cd3user cd3_toolkit bash >> $logfile 2>&1 |
| 111 | + stop_exec |
| 112 | + sudo podman ps -a >> $logfile 2>&1 |
| 113 | + echo "Connect to Container using command - sudo podman exec -it cd3_toolkit bash " >> $logfile 2>&1 |
107 | 114 |
|
108 | | -#sudo systemctl start oracle-cloud-agent.service |
| 115 | + #sudo systemctl start oracle-cloud-agent.service |
109 | 116 |
|
110 | | -duration_sec=$(echo "$(date +%s.%N) - $start" | bc) |
111 | | -duration_min=$(echo "$duration_sec%3600/60" | bc) |
112 | | -execution_time=`printf "%.2f seconds" $duration_sec` |
113 | | -echo "Script Execution Time in Seconds: $execution_time" >> $logfile 2>&1 |
114 | | -echo "Script Execution Time in Minutes: approx $duration_min Minutes" >> $logfile 2>&1 |
| 117 | + duration_sec=$(echo "$(date +%s.%N) - $start" | bc) |
| 118 | + duration_min=$(echo "$duration_sec%3600/60" | bc) |
| 119 | + execution_time=`printf "%.2f seconds" $duration_sec` |
| 120 | + echo "Script Execution Time in Seconds: $execution_time" >> $logfile 2>&1 |
| 121 | + echo "Script Execution Time in Minutes: approx $duration_min Minutes" >> $logfile 2>&1 |
0 commit comments