@@ -5,9 +5,13 @@ echo "----------------------------------------------"
5
5
6
6
echo " AWS_REGION=${_AWS_REGION_} " >> /etc/environment
7
7
echo " ASSETS_S3_PATH=${_ASSETS_S3_PATH_} " >> /etc/environment
8
+ echo " RESOURCE_ID=${_NODE_CF_LOGICAL_ID_} " >> /etc/environment
9
+ echo " STACK_NAME=${_STACK_NAME_} " >> /etc/environment
10
+ echo " STACK_ID=${_STACK_ID_} " >> /etc/environment
8
11
9
12
# ############################
10
13
# Prerequisites
14
+ # Aws cli (for signalling)
11
15
# Pip
12
16
# Pipx
13
17
# docker.io
@@ -19,15 +23,19 @@ echo "ASSETS_S3_PATH=${_ASSETS_S3_PATH_}" >> /etc/environment
19
23
echo " [user-data] Update Ubuntu package list"
20
24
sudo apt-get update --yes
21
25
26
+
22
27
# Install pip
23
- echo " [user-data] Install Pip"
24
- sudo apt-get install python3-setuptools --yes
25
- sudo python3 -m easy_install install pip
26
- python3 -m pip --version
28
+ echo " [user-data] Install Python, Pip, and Venv"
29
+ sudo add-apt-repository ppa:deadsnakes/ppa --yes
30
+ sudo apt-get update --yes
31
+ sudo apt install python3.7 --yes
32
+ sudo apt-get install -y python3-pip python3-venv
33
+
27
34
28
35
# Install Pipx
29
36
echo " [user-data] Install Pipx"
30
37
sudo apt-get install pipx --yes
38
+ pipx ensurepath
31
39
32
40
# Install Go
33
41
echo " [user-data] Install Go"
@@ -60,6 +68,10 @@ echo \
60
68
$( . /etc/os-release && echo " $VERSION_CODENAME " ) stable" | \
61
69
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
62
70
71
+ # update again since we added the docker repo to apt sources
72
+ echo " [user-data] Update again after adding docker repo to apt sources"
73
+ sudo apt-get update --yes
74
+
63
75
# Install Docker Compose:
64
76
echo " [user-data] Install docker compose"
65
77
sudo apt-get install docker-compose-plugin --yes
@@ -82,6 +94,36 @@ sudo usermod -aG docker $USER
82
94
echo " [user-data] Starting docker service"
83
95
sudo service docker start
84
96
97
+ echo " [user-data] Signaling completion to CloudFormation"
98
+ if [[ " $STACK_ID " != " none" ]]; then
99
+ echo " Install and enable CloudFormation helper scripts"
100
+ mkdir -p /opt/aws/
101
+ pip3 install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz
102
+ sudo ln -s /usr/local/init/ubuntu/cfn-hup /etc/init.d/cfn-hup
103
+
104
+ echo " Configuring CloudFormation helper scripts"
105
+ mkdir -p /etc/cfn/
106
+ mv /opt/cfn-hup/cfn-hup.conf /etc/cfn/cfn-hup.conf
107
+ sed -i " s;__AWS_STACK_ID__;\" $STACK_ID \" ;g" /etc/cfn/cfn-hup.conf
108
+ sed -i " s;__AWS_REGION__;\" $AWS_REGION \" ;g" /etc/cfn/cfn-hup.conf
109
+
110
+ mkdir -p /etc/cfn/hooks.d/
111
+ mv /opt/cfn-hup/cfn-auto-reloader.conf /etc/cfn/hooks.d/cfn-auto-reloader.conf
112
+ sed -i " s;__AWS_STACK_NAME__;\" $STACK_NAME \" ;g" /etc/cfn/hooks.d/cfn-auto-reloader.conf
113
+ sed -i " s;__AWS_REGION__;\" $AWS_REGION \" ;g" /etc/cfn/hooks.d/cfn-auto-reloader.conf
114
+
115
+ echo " Starting CloudFormation helper scripts as a service"
116
+ mv /opt/cfn-hup/cfn-hup.service /etc/systemd/system/cfn-hup.service
117
+
118
+ systemctl daemon-reload
119
+ systemctl enable --now cfn-hup
120
+ systemctl start cfn-hup.service
121
+
122
+ cfn-signal --stack $STACK_NAME --resource $RESOURCE_ID --region $AWS_REGION
123
+ fi
124
+
125
+
126
+
85
127
echo " ----------------------------------------------"
86
128
echo " [user-data] Allora user-data script successful"
87
129
echo " ----------------------------------------------"
0 commit comments