stacco 0.1.20 → 0.1.21
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 +4 -4
- data/.git/COMMIT_EDITMSG +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +1 -0
- data/.git/logs/refs/heads/master +1 -0
- data/.git/logs/refs/remotes/origin/master +1 -0
- data/.git/objects/01/6915ad73dd873159f7f9c9f386eb833f683854 +2 -0
- data/.git/objects/03/59b4f788063f520915a41d3d73a0d4631b9dfc +0 -0
- data/.git/objects/04/09e63d7e887019239ac04a2ebf184d2bf1abd5 +0 -0
- data/.git/objects/08/d390fad8629347b01e81e36389b6445bb7be6e +0 -0
- data/.git/objects/1d/24fb1b18e61fee0a5e5a065984b959eb3e26f7 +1 -0
- data/.git/objects/3c/a160491652dbac4b486a67368c3d5571a02ee7 +0 -0
- data/.git/objects/42/a30010d7fb35e5946ac0858140f8286748a49a +0 -0
- data/.git/objects/4a/ded72b0a091965c9cb556c90400e8f116b4a83 +0 -0
- data/.git/objects/60/cffb71344e0595790bc86f9044b635eb584cd5 +0 -0
- data/.git/objects/67/bdace601575b64eb0969c3b291da318069bad0 +0 -0
- data/.git/objects/9a/7a7d20ee398751b7f7c42b93d0db56d5dbe375 +0 -0
- data/.git/refs/heads/master +1 -1
- data/.git/refs/remotes/origin/master +1 -1
- data/.git/refs/tags/0.1.21 +1 -0
- data/priv/layers/admin-api.json +2 -3
- data/priv/layers/client-api.json +2 -3
- data/priv/layers/task-generate-base-image.json +68 -0
- data/priv/roles/Backend.sh +12 -8
- data/priv/roles/Common.sh +38 -29
- data/priv/roles/Frontend.sh +10 -3
- metadata +15 -3
- data/priv/roles/DockerHost.sh +0 -132
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 018a261fc9ce87765f84460e1c207a244caad5b4
|
4
|
+
data.tar.gz: 2332400896bccab5424c9f85c835bbfc7231f07a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a226439257a465b86cedafe66654eecf2511d09722d0934054d392a7a5354ea11e440ebfa3648384eccdb7b99210fa09516fbf6881f3bacf6048a07c9af6584
|
7
|
+
data.tar.gz: 6de6de1874a865280b9bce02600c2e39edfc71e5cf39b391a4ef4d0eb0f396c956bc00ad393fa8c68ebf7cb019d1fafbcd5f495a0be0821b628417043d04c586
|
data/.git/COMMIT_EDITMSG
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Externalize DockerHost logic
|
data/.git/index
CHANGED
Binary file
|
data/.git/logs/HEAD
CHANGED
@@ -1,2 +1,3 @@
|
|
1
1
|
0000000000000000000000000000000000000000 43266d16742cc444c81d82f49923f99546bf6702 Levi Aul <levi@leviaul.com> 1402508203 -0700 clone: from git@github.com:bexio/cloudformation.git
|
2
2
|
43266d16742cc444c81d82f49923f99546bf6702 7ae0507874a426eccf1e5cade20bbd06e748026a Levi Aul <levi@leviaul.com> 1402598788 -0700 commit: Merge Bastion and NAT functions, and move DockerHost to using upstart
|
3
|
+
7ae0507874a426eccf1e5cade20bbd06e748026a 016915ad73dd873159f7f9c9f386eb833f683854 Levi Aul <levi@leviaul.com> 1402619504 -0700 commit: Externalize DockerHost logic
|
data/.git/logs/refs/heads/master
CHANGED
@@ -1,2 +1,3 @@
|
|
1
1
|
0000000000000000000000000000000000000000 43266d16742cc444c81d82f49923f99546bf6702 Levi Aul <levi@leviaul.com> 1402508203 -0700 clone: from git@github.com:bexio/cloudformation.git
|
2
2
|
43266d16742cc444c81d82f49923f99546bf6702 7ae0507874a426eccf1e5cade20bbd06e748026a Levi Aul <levi@leviaul.com> 1402598788 -0700 commit: Merge Bastion and NAT functions, and move DockerHost to using upstart
|
3
|
+
7ae0507874a426eccf1e5cade20bbd06e748026a 016915ad73dd873159f7f9c9f386eb833f683854 Levi Aul <levi@leviaul.com> 1402619504 -0700 commit: Externalize DockerHost logic
|
@@ -1 +1,2 @@
|
|
1
1
|
43266d16742cc444c81d82f49923f99546bf6702 7ae0507874a426eccf1e5cade20bbd06e748026a Levi Aul <levi@leviaul.com> 1402598796 -0700 update by push
|
2
|
+
7ae0507874a426eccf1e5cade20bbd06e748026a 016915ad73dd873159f7f9c9f386eb833f683854 Levi Aul <levi@leviaul.com> 1402619519 -0700 update by push
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
xe�Mk�0�wΧxȆ�6u��n��aZ6;J���I���!��V�ly�/Ϗ�.`�ona��^����֕E�Q�V�'v��L�ِ�a4J�e2�|0IJ��aϥ���RC*Y~��^�Q-9����\gu����>�iu�A������w�E)��0�d�gC�B�I!�ݭ�yi�rBq 𮇧��s��_7��?�&��1�:V��ܝ:q6Y��Y����wz�]��)*iwSGiő��v�u�8��pf~3��.�6C��6��Wt��N��
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/.git/refs/heads/master
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
016915ad73dd873159f7f9c9f386eb833f683854
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
016915ad73dd873159f7f9c9f386eb833f683854
|
@@ -0,0 +1 @@
|
|
1
|
+
016915ad73dd873159f7f9c9f386eb833f683854
|
data/priv/layers/admin-api.json
CHANGED
@@ -77,7 +77,7 @@
|
|
77
77
|
|
78
78
|
"UpdatePolicy": {
|
79
79
|
"AutoScalingRollingUpdate": {
|
80
|
-
"MinInstancesInService": "
|
80
|
+
"MinInstancesInService": "1",
|
81
81
|
"MaxBatchSize": "1",
|
82
82
|
"PauseTime": "PT0S"
|
83
83
|
}
|
@@ -89,7 +89,7 @@
|
|
89
89
|
"LaunchConfigurationName": {"Ref": "BackendLaunchConfiguration"},
|
90
90
|
|
91
91
|
"MinSize": "1",
|
92
|
-
"MaxSize": "
|
92
|
+
"MaxSize": "2",
|
93
93
|
|
94
94
|
"HealthCheckType": "ELB",
|
95
95
|
"HealthCheckGracePeriod": "1600",
|
@@ -146,7 +146,6 @@
|
|
146
146
|
"export AWS_INSTANCE_WAIT_HANDLE='", {"Ref": "AdminAPIScalingGroupReadyWaitHandle"}, "'\n",
|
147
147
|
{"Ref": "UserDataEnvironmentVar"}, "\n",
|
148
148
|
{"Ref": "CommonRoleScriptVar"}, "\n",
|
149
|
-
{"Ref": "DockerHostRoleScriptVar"}, "\n",
|
150
149
|
{"Ref": "BackendRoleScriptVar"}, "\n"
|
151
150
|
]]}}
|
152
151
|
}
|
data/priv/layers/client-api.json
CHANGED
@@ -83,7 +83,7 @@
|
|
83
83
|
|
84
84
|
"UpdatePolicy": {
|
85
85
|
"AutoScalingRollingUpdate": {
|
86
|
-
"MinInstancesInService": "
|
86
|
+
"MinInstancesInService": "1",
|
87
87
|
"MaxBatchSize": "1",
|
88
88
|
"PauseTime": "PT0S"
|
89
89
|
}
|
@@ -95,7 +95,7 @@
|
|
95
95
|
"LaunchConfigurationName": {"Ref": "FrontendLaunchConfiguration"},
|
96
96
|
|
97
97
|
"MinSize": "1",
|
98
|
-
"MaxSize": "
|
98
|
+
"MaxSize": "2",
|
99
99
|
|
100
100
|
"HealthCheckType": "ELB",
|
101
101
|
"HealthCheckGracePeriod": "1600",
|
@@ -147,7 +147,6 @@
|
|
147
147
|
"export BEXNG_ADMIN_API_HOST='", {"Fn::FindInMap": ["StackZoneRecords", "AdminAPI", "DNSName" ]}, "'\n",
|
148
148
|
{"Ref": "UserDataEnvironmentVar"}, "\n",
|
149
149
|
{"Ref": "CommonRoleScriptVar"}, "\n",
|
150
|
-
{"Ref": "DockerHostRoleScriptVar"}, "\n",
|
151
150
|
{"Ref": "FrontendRoleScriptVar"}, "\n"
|
152
151
|
]]}}
|
153
152
|
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
{
|
2
|
+
|
3
|
+
"Resources": {
|
4
|
+
|
5
|
+
"BaseImageGeneratorSecurityGroup" : {
|
6
|
+
"Type" : "AWS::EC2::SecurityGroup",
|
7
|
+
"Properties" : {
|
8
|
+
"GroupDescription" : "Allow the application instances to access the NAT device",
|
9
|
+
"VpcId" : { "Ref" : "VPC" },
|
10
|
+
|
11
|
+
"SecurityGroupIngress": [
|
12
|
+
{"IpProtocol": "tcp", "FromPort": "22", "ToPort": "22", "CidrIp": "0.0.0.0/0"}
|
13
|
+
],
|
14
|
+
"SecurityGroupEgress": [
|
15
|
+
{"IpProtocol": "-1", "CidrIp": "0.0.0.0/0"}
|
16
|
+
]
|
17
|
+
}
|
18
|
+
},
|
19
|
+
|
20
|
+
"BaseImageGeneratorReadyWaitHandle": {"Type": "AWS::CloudFormation::WaitConditionHandle", "Properties": {}},
|
21
|
+
|
22
|
+
"BaseImageGeneratorReady": {"Type": "AWS::CloudFormation::WaitCondition", "DependsOn": ["BaseImageGenerator"], "Properties": {
|
23
|
+
"Handle": {"Ref": "BaseImageGeneratorReadyWaitHandle"},
|
24
|
+
"Count": "1",
|
25
|
+
"Timeout": "1200"
|
26
|
+
}},
|
27
|
+
|
28
|
+
"BaseImageGenerator" : {
|
29
|
+
"Type" : "AWS::EC2::Instance",
|
30
|
+
"Metadata": {
|
31
|
+
"AWS::CloudFormation::Init": {}
|
32
|
+
},
|
33
|
+
"Properties" : {
|
34
|
+
"InstanceType": "m3.large",
|
35
|
+
"ImageId": {"Ref": "InstanceAMIVar"},
|
36
|
+
"KeyName": {"Ref": "IAMKeypairNameVar"},
|
37
|
+
|
38
|
+
"NetworkInterfaces": [{
|
39
|
+
"DeviceIndex": "0",
|
40
|
+
"AssociatePublicIpAddress": "true",
|
41
|
+
"DeleteOnTermination": "true",
|
42
|
+
"SubnetId": {"Ref": "PublicSubnet"},
|
43
|
+
"GroupSet" : [{"Ref" : "BaseImageGeneratorSecurityGroup"}]
|
44
|
+
}],
|
45
|
+
|
46
|
+
"BlockDeviceMappings": [
|
47
|
+
{"DeviceName": "/dev/xvdc", "Ebs": {
|
48
|
+
"VolumeSize": "5"
|
49
|
+
}}
|
50
|
+
],
|
51
|
+
|
52
|
+
"UserData": {"Fn::Base64": {"Fn::Join": ["", [
|
53
|
+
"#!/bin/bash\n",
|
54
|
+
"export AWS_REGION='", {"Ref": "AWS::Region"}, "'\n",
|
55
|
+
"export AWS_STACK_NAME='", {"Ref": "AWS::StackName"}, "'\n",
|
56
|
+
"export AWS_INSTANCE_LOGICAL_NAME='BaseImageGenerator'\n",
|
57
|
+
"export AWS_INSTANCE_WAIT_HANDLE='", {"Ref": "BaseImageGeneratorReadyWaitHandle"}, "'\n",
|
58
|
+
{"Ref": "UserDataEnvironmentVar"}, "\n",
|
59
|
+
{"Ref": "CommonRoleScriptVar"}, "\n",
|
60
|
+
{"Ref": "DockerHostRoleScriptVar"}, "\n",
|
61
|
+
{"Ref": "BaseImageGeneratorRoleScriptVar"}, "\n"
|
62
|
+
]]}}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
}
|
67
|
+
|
68
|
+
}
|
data/priv/roles/Backend.sh
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# DockerHost tools
|
2
|
+
run-gist "tsutsu/72c4ac40591f96ad379f"
|
3
|
+
|
4
|
+
mkdir -p /var/lib/docker && mount /dev/xvdc /var/lib/docker
|
5
|
+
mkdir -p /volumes && mount /dev/xvdd /volumes
|
1
6
|
|
2
7
|
# create bexng file-based config
|
3
8
|
mkdir -p /etc/bexng
|
@@ -21,28 +26,27 @@ cat >"/etc/bexng/secrets.exs" <<EOF
|
|
21
26
|
EOF
|
22
27
|
|
23
28
|
|
24
|
-
|
29
|
+
docker-bootstrap
|
30
|
+
|
31
|
+
docker-define-service "quay.io/bexio/postgresql" \
|
25
32
|
--volume "/volumes/postgresql:/var/lib/postgresql"
|
26
33
|
|
27
|
-
|
34
|
+
docker-define-service "quay.io/bexio/bitcoind" \
|
28
35
|
--volume "/volumes/bitcoind:/var/lib/bitcoin"
|
29
36
|
|
30
|
-
|
37
|
+
docker-define-service "quay.io/bexio/bexng" \
|
31
38
|
--dependency "bitcoind" \
|
32
39
|
--dependency "postgresql" \
|
33
40
|
--volume "/etc/bexng:/target" \
|
34
41
|
--publish="51607:51607" \
|
35
42
|
-e "BEXNG_TARGET_SYSTEM=${DOMAIN}"
|
36
43
|
|
37
|
-
|
44
|
+
docker-define-service "quay.io/bexio/bexng_frontend" \
|
38
45
|
--dependency "bexng" \
|
39
46
|
--publish="80:8080"
|
40
47
|
|
41
48
|
|
42
|
-
echo "
|
43
|
-
create_docker_library
|
44
|
-
|
45
|
-
echo "starting container services:"
|
49
|
+
echo "starting docker-container services..."
|
46
50
|
start postgresql
|
47
51
|
start bitcoind
|
48
52
|
start bexng
|
data/priv/roles/Common.sh
CHANGED
@@ -2,7 +2,6 @@ _exit_handler_reason=""
|
|
2
2
|
_exit_handler(){
|
3
3
|
exit_code="$?"
|
4
4
|
|
5
|
-
|
6
5
|
if [ "${exit_code}" -eq 0 ]; then
|
7
6
|
echo "Stacco cloud-init handler finished"
|
8
7
|
cfn-signal -s true "${AWS_INSTANCE_WAIT_HANDLE}"
|
@@ -22,23 +21,43 @@ die(){
|
|
22
21
|
|
23
22
|
trap _exit_handler EXIT
|
24
23
|
set -e
|
25
|
-
|
26
|
-
echo "running as $(whoami) in ${PWD}"
|
27
24
|
export HOME=/root
|
28
25
|
cd "$HOME"
|
29
26
|
|
30
27
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
28
|
+
cat >/usr/local/bin/run-gist <<EOF
|
29
|
+
gist_id="\$1"; shift
|
30
|
+
|
31
|
+
gist_download_url="https://gist.github.com/\${gist_id}/download"
|
32
|
+
extract_dir=\$(mktemp -d /tmp/stacco.XXXXXXXX)
|
33
|
+
|
34
|
+
echo "unpacking '\${gist_download_url}'..."
|
35
|
+
|
36
|
+
pushd "\${extract_dir}" >/dev/null
|
37
|
+
curl -sL "\${gist_download_url}" | tar -x -z --strip=1
|
38
|
+
chmod a+x ./run
|
39
|
+
./run
|
40
|
+
popd >/dev/null
|
41
|
+
|
42
|
+
rm -rf "\${extract_dir}"
|
43
|
+
EOF
|
44
|
+
chmod a+x /usr/local/bin/run-gist
|
39
45
|
|
46
|
+
|
47
|
+
echo "ensuring internet connectivity..."
|
48
|
+
curl -I --silent --fail --show-error --retry 100 http://bex-status.s3.amazonaws.com/status.json
|
40
49
|
echo "found an internet connection."
|
41
50
|
|
51
|
+
echo "configuring hostname from aws metadata service"
|
52
|
+
private_hostname=$(curl http://169.254.169.254/latest/meta-data/hostname)
|
53
|
+
echo "${private_hostname}" > /etc/hostname
|
54
|
+
hostname -b -F /etc/hostname
|
55
|
+
short_hostname=$(hostname -s)
|
56
|
+
sed -i '/127\.0\.0\.1/d' /etc/hosts
|
57
|
+
cat >>/etc/hosts <<EOF
|
58
|
+
127.0.0.1 localhost ${short_hostname} ${private_hostname}
|
59
|
+
EOF
|
60
|
+
|
42
61
|
echo "disablng kernel and initramfs updates"
|
43
62
|
echo $(dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}') hold | dpkg --set-selections
|
44
63
|
sed -i 's/=yes/=no/g' /etc/initramfs-tools/update-initramfs.conf
|
@@ -52,23 +71,13 @@ echo "installing aws cfn-tools"
|
|
52
71
|
easy_install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz
|
53
72
|
cfn-init --region="${AWS_REGION}" --stack="${AWS_STACK_NAME}" --resource="${AWS_INSTANCE_LOGICAL_NAME}" || die 'Failed to run cfn-init'
|
54
73
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
hostname -b -F /etc/hostname
|
60
|
-
short_hostname=$(hostname -s)
|
61
|
-
|
62
|
-
sed -i '/127\.0\.0\.1/d' /etc/hosts
|
63
|
-
cat >>/etc/hosts <<EOF
|
64
|
-
127.0.0.1 localhost ${short_hostname} ${private_hostname}
|
65
|
-
EOF
|
74
|
+
for dev in /dev/xvd* /dev/ephemeral*; do
|
75
|
+
if [ -n "$(mount | awk '{print $1;}' | grep "^${dev}$")" ]; then
|
76
|
+
next
|
77
|
+
fi
|
66
78
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
mount /dev/xvdd /volumes
|
72
|
-
btrfs filesystem resize max /volumes
|
79
|
+
mkfs.btrfs "${dev}" 2>/dev/null || :
|
80
|
+
mount "${dev}" /mnt
|
81
|
+
btrfs filesystem resize max /mnt 2>/dev/null || :
|
82
|
+
umount /mnt
|
73
83
|
fi
|
74
|
-
|
data/priv/roles/Frontend.sh
CHANGED
@@ -1,7 +1,14 @@
|
|
1
|
-
|
1
|
+
# DockerHost tools
|
2
|
+
run-gist "tsutsu/72c4ac40591f96ad379f"
|
3
|
+
|
4
|
+
mkdir -p /var/lib/docker && mount /dev/xvdc /var/lib/docker
|
5
|
+
mkdir -p /volumes && mount /dev/xvdd /volumes
|
6
|
+
|
7
|
+
docker-bootstrap
|
8
|
+
|
9
|
+
docker-define-service "quay.io/bexio/bexng_frontend" \
|
2
10
|
-e "BEXNG_PORT_51607_TCP=tcp://${BEXNG_ADMIN_API_HOST}:51607" \
|
3
11
|
--publish="80:8080"
|
4
12
|
|
5
|
-
|
6
|
-
|
13
|
+
echo "starting docker-container services..."
|
7
14
|
start bexng_frontend
|
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.
|
4
|
+
version: 0.1.21
|
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-06-
|
11
|
+
date: 2014-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -78,17 +78,28 @@ files:
|
|
78
78
|
- ./.git/logs/refs/heads/master
|
79
79
|
- ./.git/logs/refs/remotes/origin/HEAD
|
80
80
|
- ./.git/logs/refs/remotes/origin/master
|
81
|
+
- ./.git/objects/01/6915ad73dd873159f7f9c9f386eb833f683854
|
81
82
|
- ./.git/objects/01/ddd978bb9fbf18a379fb418080b2fc4d5102b6
|
83
|
+
- ./.git/objects/03/59b4f788063f520915a41d3d73a0d4631b9dfc
|
84
|
+
- ./.git/objects/04/09e63d7e887019239ac04a2ebf184d2bf1abd5
|
82
85
|
- ./.git/objects/07/1c3c0ff3bbb5d2dee36124869ac978339aa7d8
|
86
|
+
- ./.git/objects/08/d390fad8629347b01e81e36389b6445bb7be6e
|
83
87
|
- ./.git/objects/18/ec0e701dcbdb487c91265f32d6d0e12a1cce42
|
88
|
+
- ./.git/objects/1d/24fb1b18e61fee0a5e5a065984b959eb3e26f7
|
84
89
|
- ./.git/objects/1d/f93d4a34d891a00b6b11d13e8e9c49e2e918d7
|
85
90
|
- ./.git/objects/36/ba5be11b41d1823658d7ce80027a97ebad5b49
|
91
|
+
- ./.git/objects/3c/a160491652dbac4b486a67368c3d5571a02ee7
|
86
92
|
- ./.git/objects/3d/f99825f6039015db4c43abf789d2f1e54649f4
|
93
|
+
- ./.git/objects/42/a30010d7fb35e5946ac0858140f8286748a49a
|
94
|
+
- ./.git/objects/4a/ded72b0a091965c9cb556c90400e8f116b4a83
|
87
95
|
- ./.git/objects/4b/7e51ebdd2d7ae3ef0b0a27d081ce1579f5a073
|
88
96
|
- ./.git/objects/53/2b0166a9dda8275dcfcba389a1d782269a127f
|
97
|
+
- ./.git/objects/60/cffb71344e0595790bc86f9044b635eb584cd5
|
98
|
+
- ./.git/objects/67/bdace601575b64eb0969c3b291da318069bad0
|
89
99
|
- ./.git/objects/69/2be5effe74e8c9f60c3a949d383324ac075248
|
90
100
|
- ./.git/objects/7a/e0507874a426eccf1e5cade20bbd06e748026a
|
91
101
|
- ./.git/objects/7e/d9e61793490a93850a3974ab2ab01bc35f4e15
|
102
|
+
- ./.git/objects/9a/7a7d20ee398751b7f7c42b93d0db56d5dbe375
|
92
103
|
- ./.git/objects/b8/cd9a56aeab69e861ec8b3449b0910cb9d41d6e
|
93
104
|
- ./.git/objects/c7/9379c6c2ef65dbb2e04e183e00803154cb35ab
|
94
105
|
- ./.git/objects/e1/9b48d2433a281d1a3d1d37877b0c969277a57e
|
@@ -100,6 +111,7 @@ files:
|
|
100
111
|
- ./.git/refs/remotes/origin/HEAD
|
101
112
|
- ./.git/refs/remotes/origin/master
|
102
113
|
- ./.git/refs/tags/0.1.20
|
114
|
+
- ./.git/refs/tags/0.1.21
|
103
115
|
- ./.gitignore
|
104
116
|
- ./bin/stacco
|
105
117
|
- ./Dockerfile
|
@@ -118,10 +130,10 @@ files:
|
|
118
130
|
- ./priv/layers/client-api.json
|
119
131
|
- ./priv/layers/docker-librarian.json
|
120
132
|
- ./priv/layers/static.json
|
133
|
+
- ./priv/layers/task-generate-base-image.json
|
121
134
|
- ./priv/layers/vpc.json
|
122
135
|
- ./priv/roles/Backend.sh
|
123
136
|
- ./priv/roles/Common.sh
|
124
|
-
- ./priv/roles/DockerHost.sh
|
125
137
|
- ./priv/roles/Frontend.sh
|
126
138
|
- ./priv/roles/NAT.sh
|
127
139
|
- ./priv/roles/VPN.sh
|
data/priv/roles/DockerHost.sh
DELETED
@@ -1,132 +0,0 @@
|
|
1
|
-
|
2
|
-
create_docker_library(){
|
3
|
-
|
4
|
-
echo "mounting docker library..."
|
5
|
-
docker_volume="/dev/xvdc"
|
6
|
-
mkfs.btrfs -L dockergraph "${docker_volume}" 2>/dev/null || :
|
7
|
-
mkdir -p /var/lib/docker
|
8
|
-
mount -t btrfs -o "rw,noatime,space_cache" "${docker_volume}" /var/lib/docker
|
9
|
-
btrfs filesystem resize max /var/lib/docker
|
10
|
-
|
11
|
-
echo "installing docker..."
|
12
|
-
echo 'deb http://get.docker.io/ubuntu docker main' > /etc/apt/sources.list.d/docker.list
|
13
|
-
apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-keys '36A1D7869245C8950F966E92D8576A8BA88D21E9'
|
14
|
-
apt-get update
|
15
|
-
apt-get install -qy lxc-docker
|
16
|
-
gpasswd -a ubuntu docker
|
17
|
-
|
18
|
-
echo "logging into ${DOCKER_REGISTRY_URL}..."
|
19
|
-
cat >/root/.dockercfg <<EOF
|
20
|
-
{"${DOCKER_REGISTRY_URL}": {
|
21
|
-
"auth": "${DOCKER_REGISTRY_AUTH}",
|
22
|
-
"email": "${DOCKER_REGISTRY_EMAIL}"
|
23
|
-
}}
|
24
|
-
EOF
|
25
|
-
|
26
|
-
}
|
27
|
-
|
28
|
-
|
29
|
-
define_container(){
|
30
|
-
|
31
|
-
echo "defining container service '$1'..."
|
32
|
-
|
33
|
-
image_repo=$1
|
34
|
-
shift
|
35
|
-
|
36
|
-
image_name=$(echo "${image_repo}" | tr '/' ' ' | awk '{print $NF;}')
|
37
|
-
data_container_name="${image_name}-data"
|
38
|
-
|
39
|
-
image_tag="latest"
|
40
|
-
dependencies=""
|
41
|
-
volumes=""
|
42
|
-
published_ports=""
|
43
|
-
misc_args=""
|
44
|
-
|
45
|
-
while [ "$#" -gt 0 ]; do
|
46
|
-
case "$1" in
|
47
|
-
--tag)
|
48
|
-
shift; tag_name="$1"; shift
|
49
|
-
image_tag="${tag_name}"
|
50
|
-
;;
|
51
|
-
--dependency)
|
52
|
-
shift; dep_name="$1"; shift
|
53
|
-
dependencies="${dependencies} ${dep_name}"
|
54
|
-
;;
|
55
|
-
--volume)
|
56
|
-
shift; volume_arg="$1"; shift
|
57
|
-
volumes="${volumes} ${volume_arg}"
|
58
|
-
;;
|
59
|
-
--publish-all-ports)
|
60
|
-
shift
|
61
|
-
publishing_all_ports=1
|
62
|
-
;;
|
63
|
-
*)
|
64
|
-
misc_arg="$1"; shift
|
65
|
-
misc_args="${misc_args} ${misc_arg}"
|
66
|
-
;;
|
67
|
-
esac
|
68
|
-
done
|
69
|
-
|
70
|
-
stopping_stanza="stopping docker"
|
71
|
-
link_args=""
|
72
|
-
for dep_name in ${dependencies}; do
|
73
|
-
stopping_stanza="${stopping_stanza} or stopping ${dep_name}"
|
74
|
-
link_args="${link_args} --link=\"${dep_name}:${dep_name}\""
|
75
|
-
done
|
76
|
-
|
77
|
-
|
78
|
-
data_container_volume_args=""
|
79
|
-
for volume_mapping in ${volumes}; do
|
80
|
-
data_container_volume_args="${data_container_volume_args} --volume=\"${volume_mapping}\""
|
81
|
-
done
|
82
|
-
|
83
|
-
cat >"/etc/init/${image_name}.conf" <<EOF
|
84
|
-
stop on (${stopping_stanza})
|
85
|
-
|
86
|
-
console output
|
87
|
-
|
88
|
-
env HOME=/root
|
89
|
-
|
90
|
-
respawn
|
91
|
-
respawn limit 5 20
|
92
|
-
|
93
|
-
pre-start script
|
94
|
-
. /etc/environment.local
|
95
|
-
|
96
|
-
echo "creating data container (${data_container_name}) if it doesn't exist..."
|
97
|
-
docker run --name="${data_container_name}" ${data_container_volume_args} "tianon/true:latest" 2>/dev/null || :
|
98
|
-
|
99
|
-
echo "updating image (${image_repo}:${image_tag})..."
|
100
|
-
docker pull "${image_repo}:${image_tag}"
|
101
|
-
end script
|
102
|
-
|
103
|
-
post-stop script
|
104
|
-
docker rm "${image_name}" || :
|
105
|
-
end script
|
106
|
-
|
107
|
-
script
|
108
|
-
. /etc/environment.local
|
109
|
-
|
110
|
-
echo "starting container: ${image_name} (from ${image_repo}:${image_tag})..."
|
111
|
-
|
112
|
-
if [ -n "${publishing_all_ports}" ]; then
|
113
|
-
published_port_args=""
|
114
|
-
published_ports="\$(docker inspect --format='{{.Config.ExposedPorts}}' "${image_repo}:${image_tag}" | sed -e 's/[^0-9]/ /g')"
|
115
|
-
for port in \${published_ports}; do
|
116
|
-
published_port_args="\${published_port_args} --publish=\"\${port}:\${port}\""
|
117
|
-
done
|
118
|
-
fi
|
119
|
-
|
120
|
-
exec docker run --rm -i -t --sig-proxy=true \
|
121
|
-
--name="${image_name}" \
|
122
|
-
--volumes-from="${data_container_name}" \
|
123
|
-
\${published_port_args} \
|
124
|
-
${link_args} \
|
125
|
-
${misc_args} \
|
126
|
-
"${image_repo}:${image_tag}"
|
127
|
-
end script
|
128
|
-
EOF
|
129
|
-
|
130
|
-
echo "defined."
|
131
|
-
|
132
|
-
}
|