stacco 0.1.68 → 0.1.70

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: afcf06f43cc92e00dfceac25d929c015e7f243db
4
- data.tar.gz: eb193a4d100a213b05579b7293347fab52eec906
3
+ metadata.gz: 680a5a39d8fa81c2b3e7830ff91cda8739cd47f9
4
+ data.tar.gz: 4eb25166d19dd268f5798b2666bd3718edc9c693
5
5
  SHA512:
6
- metadata.gz: 3c591c65a08b6673fb45893846a254c6b783cec6d53ba97ca95e3c3e797787e3ec628ca2b34920d072440077c8779a402edef8f0adf622d11bf6c4eb74b05d8b
7
- data.tar.gz: fcf43f166d3eb3f460250bc240f465b57e79a553ff4d9b4933cbc987d436f88dd8dcba96f0f5a4d1523a439a9683d1fc933dadfa601554f03b2a9f40d95a76a9
6
+ metadata.gz: 9cfc1baff20eade90557dfe821130fd0cb7d37cde380393bd599fb32ab229081d672b1810e4b724f889c76ca2c5a830be06af76e448f6bfe27eb3b7b5ac757de
7
+ data.tar.gz: 7dc36b3ac0d03a7e148ce3dd6000a33ed3f5700dfbe5f55d8d9a2ae3028f327b3627e19dcfc9ee7cea5eca1f4d5fc8595d64c365e88da5be081c7356dc70a8d5
@@ -1,9 +1,6 @@
1
- frontend_image="bexio/bexng-frontend:${FRONTEND_IMAGE_TAG}"
2
- backend_image="bexio/bexng:${BACKEND_IMAGE_TAG}"
3
-
4
- # create bexng file-based config
1
+ step "setting up /target directory for bexbackend"
5
2
  mkdir -p /etc/bexng
6
- echo "${DOMAIN}" > /etc/bexng/name
3
+
7
4
  cat >"/etc/bexng/secrets.exs" <<EOF
8
5
  [
9
6
  authy_url: "${AUTHY_URL}",
@@ -32,65 +29,142 @@ cat >"/etc/bexng/secrets.exs" <<EOF
32
29
  ]
33
30
  EOF
34
31
 
35
- cat >/usr/local/sbin/bexng-before-start <<EOF
36
- docker pull bexio/postgresql:latest && \
37
- docker run --rm \
38
- \$(docker-utils container-links-for -w 'postgresql') \
39
- -e "DB_ADMIN_USERNAME=\${DB_ADMIN_USERNAME}" \
40
- -e "DB_ADMIN_PASSWORD=\${DB_ADMIN_PASSWORD}" \
41
- 'bexio/postgresql:latest' \
42
- db:create 'bexng' "\${BEXNG_DB_SECRET}"
43
- EOF
44
- chmod a+x /usr/local/sbin/bexng-before-start
32
+ step_done
45
33
 
46
34
 
47
- echo "starting docker operations"
48
- gem update docker-utils
35
+ step "updating docker basefiles"
36
+ gem update 'docker-utils' --no-rdoc --no-ri
37
+ docker pull 'bexio/base:latest' >/dev/null 2>&1
38
+ docker pull 'bexio/toolchain:elixir-upgrade' >/dev/null 2>&1
39
+ step_done
49
40
 
50
- docker pull tianon/true:latest
51
- docker pull bexio/base:latest
52
- docker pull bexio/amb:latest
53
- docker pull bexio/bitcoind:latest
54
- docker pull bexio/armoryd:latest
55
- docker pull bexio/postgresql:latest
56
- docker pull "${backend_image}"
57
- docker pull "${frontend_image}"
58
41
 
42
+ start_bitcoind() {
59
43
 
60
44
  if [ "${WALLET_NETWORK}" = "testnet3" ]; then
61
- docker run --name='bitcoind-data' --volumes-from='tbtc-data' tianon/true:latest
45
+ bitcoin_data_volume='tbtc-data'
62
46
  else
63
- docker run --name='bitcoind-data' --volumes-from='btc-data' tianon/true:latest
47
+ bitcoin_data_volume='btc-data'
64
48
  fi
65
49
 
66
- docker-utils define-ambassador-service "postgresql" \
50
+ docker pull 'scratch:latest' >/dev/null 2>&1
51
+
52
+ docker run \
53
+ --name='bitcoind-data' \
54
+ --volumes-from="${bitcoin_data_volume}" \
55
+ --entrypoint 'volume' \
56
+ 'scratch:latest' || :
57
+
58
+ step "starting bitcoind"
59
+
60
+ docker pull 'bexio/bitcoind:latest' >/dev/null 2>&1
61
+
62
+ docker run -d --restart=always \
63
+ --name='bitcoind' \
64
+ -e "NETWORK=${WALLET_NETWORK}" \
65
+ --volumes-from='bitcoind-data' \
66
+ 'bexio/bitcoind:latest'
67
+
68
+ step_done
69
+ }
70
+
71
+
72
+ start_db() {
73
+ docker pull 'bexio/amb:latest' >/dev/null 2>&1
74
+
75
+ step "starting db"
76
+
77
+ docker run -d \
78
+ --name='rds-postgres-1' \
79
+ "bexio/amb:latest" \
80
+ "${DB_HOST}" "${DB_PORT}"
81
+
82
+ docker-utils block-until-port-open 'rds-postgres-1' '5432'
83
+
84
+ docker pull 'bexio/pgproxy:latest' >/dev/null 2>&1
85
+
86
+ docker run --rm -i -t \
87
+ --name='bexng-db-init-task' \
88
+ --link="rds-postgres-1:postgresql" \
89
+ -e "NO_PROXY=1" \
90
+ "bexio/pgproxy:latest" \
91
+ "${DB_ADMIN_USERNAME}" "${DB_ADMIN_PASSWORD}" \
92
+ 'bexng' "${BEXNG_DB_SECRET}"
93
+
94
+ docker kill 'rds-postgres-1'
95
+ docker rm 'rds-postgres-1'
96
+
97
+ docker run -d --restart=always \
98
+ --name='rds-postgres' \
99
+ "bexio/amb:latest" \
67
100
  "${DB_HOST}" "${DB_PORT}"
68
101
 
69
- docker-utils define-service "bexio/bitcoind" \
70
- -e "NETWORK=${WALLET_NETWORK}"
102
+ step_done
103
+
104
+
105
+ }
106
+
107
+
108
+ start_armoryd() {
109
+ step "starting armoryd"
110
+
111
+ docker pull 'bexio/armoryd:latest' >/dev/null 2>&1
112
+
113
+ docker run -d --restart=always \
114
+ --name="armoryd" \
115
+ -e "NETWORK=${WALLET_NETWORK}" \
116
+ "bexio/armoryd:latest"
117
+
118
+ step_done
119
+ }
120
+
121
+ start_bexbackend() {
122
+ docker-utils block-until-port-open 'rds-postgres' '5432'
123
+ docker-utils block-until-port-open 'bitcoind' '8333'
124
+ docker-utils block-until-port-open 'armoryd' '80'
71
125
 
72
- docker-utils define-service "bexio/armoryd" \
73
- -e "NETWORK=${WALLET_NETWORK}"
126
+ step "starting bexbackend"
74
127
 
75
- docker-utils define-service "${backend_image}" \
76
- --dependency "bitcoind" \
77
- --dependency "postgresql" \
78
- --dependency "armoryd" \
79
- --before-start "$(cat /usr/local/sbin/bexng-before-start)" \
128
+ docker pull "bexio/bexng:${BACKEND_IMAGE_TAG}" >/dev/null 2>&1
129
+
130
+ export DEPLOY_TARGET="${DOMAIN}"
131
+
132
+ docker run -d --restart=always \
133
+ --name='bexbackend' \
134
+ --link='rds-postgres:postgresql' \
135
+ --link='bitcoind:bitcoind' \
136
+ --link='armoryd:armoryd' \
80
137
  --volume "/etc/bexng:/target" \
81
138
  --publish="51607:51607" \
82
- -e "DB_SECRET=${BEXNG_DB_SECRET}" \
83
- -e "DEPLOY_TARGET=${DOMAIN}"
139
+ -e "BEXNG_DB_SECRET" \
140
+ -e "DEPLOY_TARGET" \
141
+ "bexio/bexng:${BACKEND_IMAGE_TAG}"
142
+
143
+ step_done
144
+ }
145
+
146
+ start_bexfrontend() {
147
+ docker-utils block-until-port-open 'bexbackend' '51607'
148
+
149
+ step "starting bexfrontend"
150
+
151
+ docker pull "bexio/frontend:${FRONTEND_IMAGE_TAG}" >/dev/null 2>&1
152
+
153
+ docker run -d --restart=always \
154
+ --name='bexfrontend' \
155
+ --link="bexbackend:backend" \
156
+ -e 'BEXNG_PORT_51608_TCP=tcp://backend:51608' \
157
+ --publish='80:8081' \
158
+ "bexio/frontend:${FRONTEND_IMAGE_TAG}"
159
+
160
+ step_done
161
+ }
84
162
 
85
- docker-utils define-service "${frontend_image}" \
86
- -e "BEXNG_PORT_51607_TCP=tcp://backend:51607" \
87
- --link="bexng:backend" \
88
- --publish="80:8080"
89
163
 
164
+ start_bitcoind &
165
+ start_db &
166
+ start_armoryd &
167
+ start_bexbackend &
168
+ start_bexfrontend &
169
+ wait
90
170
 
91
- echo "starting docker-container services..."
92
- start bitcoind
93
- start armoryd
94
- start postgresql
95
- start bexng
96
- start bexng-frontend
@@ -1,16 +1,24 @@
1
- die(){
2
- echo "error: $1" >&2
3
- exit 1
1
+ step() {
2
+ _CFINIT_STEP="$1"; shift
3
+ echo -e "==> step: \033[33m${_CFINIT_STEP}\033[0m" >&2
4
4
  }
5
5
 
6
+ step_done() {
7
+ echo -e "--> \033[32m${_CFINIT_STEP}\033[0m: ok" >&2
8
+ }
6
9
  set -e
7
10
 
11
+ die(){
12
+ echo "--> \033[31merror during ${_CFINIT_STEP}\033[0m: $1" >&2
13
+ exit 1
14
+ }
15
+
8
16
  export HOME=/root
9
17
  cd "$HOME"
10
18
 
11
19
  stop rsyslog
12
20
 
13
- echo "configuring hostname from cloudformation and aws metadata service"
21
+ step "configuring hostname from cloudformation and aws metadata service"
14
22
  configured_hostname="${CFN_INSTANCE_HOSTNAME}"
15
23
  configured_hostname_short=$(echo "${configured_hostname}" | cut -d'.' -f 1)
16
24
  private_hostname=$(curl -sL http://169.254.169.254/latest/meta-data/local-hostname)
@@ -34,6 +42,10 @@ cat >>/etc/hosts <<EOF
34
42
  127.0.2.1 ${public_hostname} ${public_hostname_short}
35
43
  EOF
36
44
  fi
45
+ step_done
46
+
47
+
48
+ step "setting up remote logging"
37
49
 
38
50
  rm -f /etc/rsyslog.d/21-cloudinit.conf
39
51
 
@@ -63,11 +75,14 @@ chown -R root:syslog /var/log/upstart
63
75
 
64
76
  start rsyslog
65
77
 
78
+ step_done
79
+
66
80
 
67
81
  provision_volume() {
68
82
  device="$1"; shift
69
83
  mntpt="$1"; shift
70
84
 
85
+ step "provisioning btrfs on ${mntpt} using ${device}"
71
86
  mkfs.btrfs "${device}" 2>/dev/null || :
72
87
 
73
88
  mount "${device}" /mnt 2>/dev/null || :
@@ -76,6 +91,7 @@ provision_volume() {
76
91
 
77
92
  mkdir -p "${mntpt}"
78
93
  mount -t btrfs -o "rw,noatime,space_cache" "${device}" "${mntpt}"
94
+ step_done
79
95
  }
80
96
 
81
97
  if [ -b "/dev/xvdc" ]; then
@@ -87,18 +103,20 @@ if [ -b "/dev/xvdd" ]; then
87
103
  fi
88
104
 
89
105
  if ! hash docker; then
90
- echo "installing docker..."
106
+ step "installing docker..."
91
107
  echo 'deb http://get.docker.io/ubuntu docker main' > /etc/apt/sources.list.d/docker.list
92
108
  apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-keys '36A1D7869245C8950F966E92D8576A8BA88D21E9'
93
109
  apt-get update
94
110
  apt-get install -qy lxc-docker
95
111
  gpasswd -a ubuntu docker
112
+ step_done
96
113
  fi
97
114
 
98
- echo "logging into ${DOCKER_REGISTRY_URL}..."
115
+ step "logging into ${DOCKER_REGISTRY_URL}"
99
116
  cat >"$HOME/.dockercfg" <<EOF
100
117
  {"${DOCKER_REGISTRY_URL}": {
101
118
  "auth": "${DOCKER_REGISTRY_AUTH}",
102
119
  "email": "${DOCKER_REGISTRY_EMAIL}"
103
120
  }}
104
121
  EOF
122
+ step_done
@@ -1,20 +1,41 @@
1
- frontend_image="bexio/bexng-frontend:${FRONTEND_IMAGE_TAG}"
2
-
1
+ step "updating docker basefiles"
3
2
  gem update docker-utils
3
+ docker pull 'bexio/base:latest' >/dev/null 2>&1
4
+ docker pull 'bexio/toolchain:elixir-upgrade' >/dev/null 2>&1
5
+ step_done
6
+
7
+
8
+ start_bexbackend_proxy() {
9
+ step "starting bexbackend proxy"
10
+
11
+ docker pull 'bexio/amb:latest' >/dev/null 2>&1
12
+
13
+ docker run -d --restart=always \
14
+ --name='bexbackend-proxy' \
15
+ 'bexio/amb:latest' \
16
+ "${BEXNG_ADMIN_API_HOST}" '51607'
17
+
18
+ step_done
19
+ }
20
+
21
+ start_bexfrontend() {
22
+ step "starting bexfrontend"
23
+
24
+ docker-utils block-until-port-open 'bexbackend-proxy' '51607'
4
25
 
5
- docker pull tianon/true:latest
6
- docker pull bexio/amb:latest
7
- docker pull "${frontend_image}"
26
+ docker pull "bexio/frontend:${FRONTEND_IMAGE_TAG}" >/dev/null 2>&1
8
27
 
9
- docker-utils define-ambassador-service "backend-proxy" \
10
- "${BEXNG_ADMIN_API_HOST}" "51607"
28
+ docker run -d --restart=always \
29
+ --name='bexfrontend' \
30
+ --link="bexbackend-proxy:backend" \
31
+ -e 'BEXNG_PORT_51607_TCP=tcp://backend:51607' \
32
+ --publish='80:8080' \
33
+ "bexio/frontend:${FRONTEND_IMAGE_TAG}"
11
34
 
12
- docker-utils define-service "${frontend_image}" \
13
- -e "BEXNG_PORT_51607_TCP=tcp://${BEXNG_ADMIN_API_HOST}:51607" \
14
- --link="backend-proxy:backend" \
15
- --publish="80:8080"
35
+ step_done
36
+ }
16
37
 
17
38
 
18
- echo "starting docker-container services..."
19
- start backend-proxy
20
- start bexng-frontend
39
+ start_bexbackend_proxy &
40
+ start_bexfrontend &
41
+ wait
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stacco
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.68
4
+ version: 0.1.70
5
5
  platform: ruby
6
6
  authors:
7
7
  - Levi Aul
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-29 00:00:00.000000000 Z
11
+ date: 2014-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk