Skip to content

Commit 2c8adc6

Browse files
add client cert generate in docker_client role, fix some nits
1 parent ff36d28 commit 2c8adc6

13 files changed

Lines changed: 140 additions & 17 deletions

File tree

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
node_modules
1+
node_modules
2+
ca-key.pem
3+
pass
4+
hellorunnable

ansible/beta-hosts/hosts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ beta-services
6565
[registry]
6666
beta-registry
6767

68+
[swarm]
69+
beta-services
70+
6871
[docks]
6972

7073
[beta:children]
@@ -86,6 +89,7 @@ optimus
8689
rabbitmq
8790
eru
8891
shiva
92+
swarm
8993

9094
[targets]
9195
localhost ansible_connection=local bastion_name=beta-bastion

ansible/certs/scripts/genClientCert.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,6 @@ openssl x509 \
3232
-extfile "$CLIENT-extfile.cnf"
3333
chmod 400 "$CLIENT-cert.pem"
3434

35+
# cleanup files we do not need
36+
rm $CLIENT-extfile.cnf
37+
rm $CLIENT-client.csr

ansible/group_vars/all.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ docker_key_path: /etc/ssl/docker/key.pem
4747
docker_ca_path: /etc/ssl/docker/ca.pem
4848

4949
# eru
50-
eru_api_host=api.{{ domain }}
50+
eru_api_host: api.{{ domain }}
5151

5252
# rabbit
53-
rabbit_port=54321
53+
rabbit_port: 54321
5454

5555
# shiva
56-
pg_database=shiva
57-
pg_user=shiva
56+
pg_database: shiva
57+
pg_user: shiva
5858

5959
# swarm
60-
swarm_master_port=2375
60+
swarm_master_port: 2375

ansible/group_vars/alpha-swarm-manager.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@ name: "swarm"
33
# container_kill_start settings
44
container_image: swarm
55
container_tag: 0.4.0
6+
7+
# for redis
8+
redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}"
9+
redis_key: "frontend:swarm.{{ domain }}"
10+
is_redis_update_required: 'yes'
11+
12+
# container_kill_start vars
613
container_run_opts: >
714
-d
815
-p {{ swarm_master_port }}:2375
@@ -16,6 +23,3 @@ container_run_args: >
1623
manage
1724
token://{{ discovery_token }}
1825
19-
# for redis
20-
redis_key: "frontend:swarm.{{ domain }}"
21-
is_redis_update_required: 'yes'

ansible/prod-hosts/hosts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ alpha-registry
7171
[shiva]
7272
alpha-api-old
7373

74+
[swarm]
75+
alpha-api-old
76+
7477
[docks]
7578

7679
[alpha:children]
@@ -94,6 +97,7 @@ detention
9497
hubot
9598
eru
9699
shiva
100+
swarm
97101

98102
[targets]
99103
localhost ansible_connection=local bastion_name=alpha-bastion
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Role Name
2+
3+
Ansible Role to Install Docker Client Certs on Ubuntu
4+
5+
## Manual Setup
6+
7+
Creating new docker client certs:
8+
1. cd into this dir ```cd <roles/docker_client>```
9+
2. ensure you have ca-key.pem here `roles/docker_client/ca-key.pem`
10+
3. run cert generator `sudo ./scripts/genClientCert.sh`
11+
4. output files we want are `<name>-key.pem` and `<name>-cert.pem`
12+
5. create folder for these new certs based on app name ```mkdir <name>```
13+
6. move keys into folder ```mv ./<name>-key.pem ./<name>/key.pem && mv ./<name>-cert.pem ./<name>/cert.pem```
14+
15+
## Author Information
16+
17+
anandkumarpatel
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash
2+
3+
if [[ $1 = '' ]]; then
4+
echo 'script requires a client name'
5+
exit 1
6+
fi
7+
CLIENT=$1
8+
9+
# generate key for client
10+
openssl genrsa -out "$CLIENT-key.pem" 2048
11+
chmod 400 "$CLIENT-key.pem"
12+
13+
# generate CSR for client
14+
openssl req \
15+
-subj '/CN=client' \
16+
-new \
17+
-key "$CLIENT-key.pem" \
18+
-out "$CLIENT-client.csr"
19+
chmod 400 "$CLIENT-client.csr"
20+
21+
echo extendedKeyUsage = clientAuth > "$CLIENT-extfile.cnf"
22+
23+
# generate cert for client
24+
openssl x509 \
25+
-req \
26+
-days 365 \
27+
-in "$CLIENT-client.csr" \
28+
-CA ca.pem \
29+
-CAkey ca-key.pem \
30+
-CAcreateserial \
31+
-out "$CLIENT-cert.pem" \
32+
-extfile "$CLIENT-extfile.cnf"
33+
chmod 400 "$CLIENT-cert.pem"
34+
35+
# cleanup files we do not need
36+
rm $CLIENT-extfile.cnf
37+
rm $CLIENT-client.csr
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDPDCCAiSgAwIBAgIJAPP4C2aCETjaMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
3+
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5j
4+
aXNjbzERMA8GA1UEChMIUnVubmFibGUxDDAKBgNVBAsTA09wczESMBAGA1UEAxMJ
5+
bG9jYWxob3N0MR8wHQYJKoZIhvcNAQkBFhBvcHNAcnVubmFibGUuY29tMB4XDTE1
6+
MTAxMjIzMjA0N1oXDTE2MTAxMTIzMjA0N1owETEPMA0GA1UEAxMGY2xpZW50MIIB
7+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtB1XYLhTAKjMVdoDm9XKjWWS
8+
OjdjN5S5XHRBbhQXWS8zTVkJwmF1RTarHChb4wUCfg2Fnbg+deTxIVQHU+M4Kfia
9+
PmeTf1A8dfA5f+F0Jj7nCi0b9Trft8yzlqv49pgKD0dHuWNYp1WZDlv8QbzpSG9r
10+
rpJwJqqkaelCqI8R2qB5iA3VJbhyT6V6n43LYZZO7D2ct/0+K40QalA8ZWogGENh
11+
5T+ik3VvrWQ5t/i0FIcTfyxpfBnX5hsBD0jtzT5RdBZTy8xk/VS2jInjQN9Rw7uw
12+
ttqWMXRQPlAs0AG+eAGdkPvdniYt1Ro7DM8qg9jdkybzo2VQ99rpQwVEf7E3QwID
13+
AQABoxcwFTATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOCAQEA
14+
A8QHccu1fSZrzopG17oxwYX6w2N9UqeJIblx2z9UIfCwc2ypwm6NIxdQzvp8CtIF
15+
ReU/KQzpl4HLEXOrWQmweNA07KlmyEuuBH8OoI3x1s56SiJiTe7fIdfE2uAZVI1N
16+
mcejNpgWRfrnecIwVLorm700pnD6pSdcOtuBKNl0P6edy/PgHj4i0buUAQni6PL+
17+
da2u6HtePOrApUgGrD9Ey6w77Pw/uOspP5HyVuXmBph5ArXIv+6x1zZz+jFnMh5M
18+
n3iZr5feeIYqCmolYyXQez9CKWdLNtZiO6KBXhAVrOGDcyTd7U5aqnaMEziHjSSh
19+
hNl160Mmr+fgY50K9bBAmw==
20+
-----END CERTIFICATE-----
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpAIBAAKCAQEAtB1XYLhTAKjMVdoDm9XKjWWSOjdjN5S5XHRBbhQXWS8zTVkJ
3+
wmF1RTarHChb4wUCfg2Fnbg+deTxIVQHU+M4KfiaPmeTf1A8dfA5f+F0Jj7nCi0b
4+
9Trft8yzlqv49pgKD0dHuWNYp1WZDlv8QbzpSG9rrpJwJqqkaelCqI8R2qB5iA3V
5+
JbhyT6V6n43LYZZO7D2ct/0+K40QalA8ZWogGENh5T+ik3VvrWQ5t/i0FIcTfyxp
6+
fBnX5hsBD0jtzT5RdBZTy8xk/VS2jInjQN9Rw7uwttqWMXRQPlAs0AG+eAGdkPvd
7+
niYt1Ro7DM8qg9jdkybzo2VQ99rpQwVEf7E3QwIDAQABAoIBAB9M3gtr3NjHfMMK
8+
oQfqzklmNlQxnedhzBiaB2jWyvvvrO2rJHwILbX6ex/oj5dTHozDUs4G36vjPlg5
9+
XxCf8vmwPzXLECHW0rr4JTXo+yNOWR42mp4yPgCV7Tuo5RoNb+oZzAgWkKh7wp5x
10+
M9REvRGec0siHaVKkEnrhG8AdezVHcZ/taPxZ84woxavKXQWxEGAHZe8OlCng1Sb
11+
Fi5UUzQY7bYnQg4Foseng4b7wB0Y3wUhaqtDB8fIUQGbh/J6WogAfalsDIT/oMEd
12+
m1V2pMz9PWHcjaGwMI9JAyTTcRVFP1d+xGxC7e5xbBv42EzzbnccaRNUZR2cBiFU
13+
hqa+5FECgYEA2QtZUMj6EL/1SMRFhMsx7gqYsv7090zWHquNjidi2HhMfuwWfy91
14+
m+SmYbA45Rr7h+HKTU0nsFL3eT3uZCYxQdVNxpdgtq/EmCAr/a0uwL3BSP9Bl1Oh
15+
LZnWgrChspKWufi43Iunp3/KPKaX4DN9N9xSep6eGlhjZu049ZzY2KkCgYEA1HEp
16+
wh3fRZXh145QBwl5QKopGl4/l/j+vST1MW+gKXj8INSXBxWxipy+8PJvHGRQrF1s
17+
i1fuBIk5UPk9XxoQNSw2ohDvRHQtMxBP3Eq/6bTmUvfF9m6QQhnL8jwtuHzGm3gd
18+
sV1+rYD02zCswNgVzKIyt9PbGKMsK1aGbMxJqAsCgYEAjJoMfwfi7uzbYgs7mb3k
19+
F3en2fTODlIpN28c4WTkZKTxsRsRq8y73IRvwELfaJNlNG5xlkgQGOp2RIV5JEmV
20+
iTc8DhVMYqxUp9PXi5sf+V4zky1AeV6EwDyzOLBh34OUvt7AKqcRsbFX+phVNLlG
21+
OeSxTZvpgdmWczvjtUCpPRkCgYAVDPmUUJ11KbrtPx7S869eJv5XrIskpfmoCGd7
22+
dJIsSd7B6g7lFtM25v1Mptk3uQD9c2x0Ckx9ipNxYKEiMVT1z+HCAWeUIubvrmgb
23+
bhTCNbi08/RbzOzif+fjou7s3wBXG3nlv1v0GVkp9xLHMSJH2rKn4IhPUqvnx3Ue
24+
hsetrQKBgQCE3AXmfUMuwXhjF5MQpEQdXuVx+1Fj44YudHphrcvapDXAIvvx6G2B
25+
wyxVJIHglK2feijsekH/i3kBHRDh0+0Y0zw+JTu4tjr3rLJv3BRofov0/LAdv53G
26+
ulXyb9uTQ73uqmnGzpCre9LzUvVq/iIbFZYESJlceF66n74XpQdXnA==
27+
-----END RSA PRIVATE KEY-----

0 commit comments

Comments
 (0)