stacco 0.1.68 → 0.1.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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