Skip to content
This repository was archived by the owner on Jan 5, 2025. It is now read-only.

Commit a6d3f09

Browse files
committed
Add pseudo-namespace to variables
1 parent dbdafdf commit a6d3f09

File tree

7 files changed

+108
-108
lines changed

7 files changed

+108
-108
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Generates self-signed CA, client and server certificates. Runs locally on contro
55
Notes:
66
- Will not overwrite any files in output cert dir
77
- Will not copy the files to the remote servers if the local files are unchanged
8-
- Will optionally (see `populate_etc_hosts` variable) add to each machine's `/etc/hosts`
8+
- Will optionally (see `gen_tls_populate_etc_hosts` variable) add to each machine's `/etc/hosts`
99
a line for each host in the inventory.
1010

1111

@@ -56,17 +56,17 @@ the resulting relevant files are `copy`ed to the remote target machine.
5656
srv2:
5757
ansible_host: 192.168.123.31
5858
vars:
59-
cert_dir: ./certs
59+
gen_tls_cert_dir: ./certs
6060
generate_ca_cert: true
6161
generate_client_cert: true
6262
generate_server_cert: true
63-
tls_ca_email: me@example.org
64-
tls_ca_country: EU
65-
tls_ca_state: Italy
66-
tls_ca_locality: Rome
67-
tls_ca_organization: Example Inc.
68-
tls_ca_organizationalunit: SysAdmins
69-
populate_etc_hosts: yes
63+
gen_tls_ca_email: me@example.org
64+
gen_tls_ca_country: EU
65+
gen_tls_ca_state: Italy
66+
gen_tls_ca_locality: Rome
67+
gen_tls_ca_organization: Example Inc.
68+
gen_tls_ca_organizationalunit: SysAdmins
69+
gen_tls_populate_etc_hosts: yes
7070
```
7171

7272
If you want to tinker, you can use `vagrant` with the provided `Vagrantfile`.

defaults/main.yml

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
11
---
22
# defaults file for generate-tls-certs
3-
generate_tls_certs: true
3+
gen_tls_generate_certs: true
44
# Do not put trailing slash "/"
5-
cert_dir: ./certs
6-
remote_certs_dir: /etc/ssl
7-
remote_ca_certs_dir: /etc/ssl/certs
8-
generate_ca_cert: false
9-
generate_client_cert: false
10-
generate_server_cert: false
5+
gen_tls_cert_dir: ./certs
6+
gen_tls_remote_certs_dir: /etc/ssl
7+
gen_tls_remote_ca_certs_dir: /etc/ssl/certs
8+
gen_tls_generate_ca_cert: false
9+
gen_tls_generate_client_cert: false
10+
gen_tls_generate_server_cert: false
1111

1212
# -------
1313
# CA CERT
1414
# -------
15-
tls_ca_cert: ca.pem
16-
tls_ca_csr: ca.csr
17-
tls_ca_key: ca.key
18-
tls_ca_key_size: 4096
15+
gen_tls_ca_cert: ca.pem
16+
gen_tls_ca_csr: ca.csr
17+
gen_tls_ca_key: ca.key
18+
gen_tls_ca_key_size: 4096
1919
# 10 years
20-
tls_ca_valid_days: 3650
21-
# tls_ca_country:
22-
# tls_ca_state:
23-
# tls_ca_locality:
24-
# tls_ca_organization:
25-
# tls_ca_organizationalunit:
26-
tls_ca_commonname: Certificate Authority
27-
#tls_ca_email:
20+
gen_tls_ca_valid_days: 3650
21+
# gen_tls_ca_country:
22+
# gen_tls_ca_state:
23+
# gen_tls_ca_locality:
24+
# gen_tls_ca_organization:
25+
# gen_tls_ca_organizationalunit:
26+
gen_tls_ca_commonname: Certificate Authority
27+
#gen_tls_ca_email:
2828

2929
# -----------
3030
# CLIENT CERT
3131
# -----------
32-
tls_client_cert: client.pem
33-
tls_client_key: client.key
34-
tls_client_csr: client.csr
35-
tls_client_key_size: 4096
36-
tls_client_commonname: Client
32+
gen_tls_client_cert: client.pem
33+
gen_tls_client_key: client.key
34+
gen_tls_client_csr: client.csr
35+
gen_tls_client_key_size: 4096
36+
gen_tls_client_commonname: Client
3737
# 2 years
38-
tls_client_valid_days: 730
38+
gen_tls_client_valid_days: 730
3939

4040
# -----------
4141
# SERVER CERT
4242
# -----------
4343
# 2 years
44-
tls_server_valid_days: 730
45-
tls_server_key_size: 4096
44+
gen_tls_server_valid_days: 730
45+
gen_tls_server_key_size: 4096
4646
# Enable Subject Alternate Name (SAN)
47-
tls_server_enable_san: true
47+
gen_tls_server_enable_san: true
4848

4949
# -------------------
5050
# POPULATE /etc/hosts
5151
# -------------------
52-
populate_etc_hosts: false
52+
gen_tls_populate_etc_hosts: false

inventory.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ all:
66
srv2:
77
ansible_host: 192.168.123.31
88
vars:
9-
cert_dir: ./certs
9+
gen_tls_cert_dir: ./certs
1010
generate_ca_cert: true
1111
generate_client_cert: true
1212
generate_server_cert: true
13-
tls_ca_email: me@example.org
14-
tls_ca_country: EU
15-
tls_ca_state: Italy
16-
tls_ca_locality: Rome
17-
tls_ca_organization: Example Inc.
18-
tls_ca_organizationalunit: SysAdmins
19-
populate_etc_hosts: yes
13+
gen_tls_ca_email: me@example.org
14+
gen_tls_ca_country: EU
15+
gen_tls_ca_state: Italy
16+
gen_tls_ca_locality: Rome
17+
gen_tls_ca_organization: Example Inc.
18+
gen_tls_ca_organizationalunit: SysAdmins
19+
gen_tls_populate_etc_hosts: yes

tasks/generate-ca-cert.yaml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,61 +2,61 @@
22
- name: Check if the CA private key exists
33
delegate_to: localhost
44
ansible.builtin.stat:
5-
path: "{{ cert_dir }}/{{ tls_ca_key }}"
5+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_key }}"
66
register: ca_key
77

88
- name: Generate CA private key
99
delegate_to: localhost
1010
community.crypto.openssl_privatekey:
11-
path: "{{ cert_dir }}/{{ tls_ca_key }}"
12-
size: "{{ tls_ca_key_size }}"
11+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_key }}"
12+
size: "{{ gen_tls_ca_key_size }}"
1313
run_once: true
1414
when: not ca_key.stat.exists
1515

1616
- name: Check if the CA CSR exists
1717
delegate_to: localhost
1818
stat:
19-
path: "{{ cert_dir }}/{{ tls_ca_csr }}"
19+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_csr }}"
2020
register: ca_csr
2121

2222
- name: Create CSR for CA
2323
delegate_to: localhost
2424
community.crypto.openssl_csr:
25-
path: "{{ cert_dir }}/{{ tls_ca_csr }}"
26-
privatekey_path: "{{ cert_dir }}/{{ tls_ca_key }}"
25+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_csr }}"
26+
privatekey_path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_key }}"
2727
basic_constraints:
2828
- "CA:TRUE"
29-
common_name: "{{ tls_ca_commonname|default('') }}"
30-
country_name: "{{ tls_ca_country|default('') }}"
31-
state_or_province_name: "{{ tls_ca_state|default('') }}"
32-
locality_name: "{{ tls_ca_locality|default('') }}"
33-
organization_name: "{{ tls_ca_organization|default('') }}"
34-
organizational_unit_name: "{{ tls_ca_organizationalunit|default('') }}"
35-
email_address: "{{ tls_ca_email }}"
29+
common_name: "{{ gen_tls_ca_commonname|default('') }}"
30+
country_name: "{{ gen_tls_ca_country|default('') }}"
31+
state_or_province_name: "{{ gen_tls_ca_state|default('') }}"
32+
locality_name: "{{ gen_tls_ca_locality|default('') }}"
33+
organization_name: "{{ gen_tls_ca_organization|default('') }}"
34+
organizational_unit_name: "{{ gen_tls_ca_organizationalunit|default('') }}"
35+
email_address: "{{ gen_tls_ca_email }}"
3636
use_common_name_for_san: no
3737
when: not ca_csr.stat.exists
3838

3939
- name: Check if the CA cert exists
4040
delegate_to: localhost
4141
stat:
42-
path: "{{ cert_dir }}/{{ tls_ca_cert }}"
42+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_cert }}"
4343
register: ca_cert
4444

4545
- name: Create and sign server cert for CA
4646
delegate_to: localhost
4747
community.crypto.x509_certificate:
48-
path: "{{ cert_dir }}/{{ tls_ca_cert }}"
49-
privatekey_path: "{{ cert_dir }}/{{ tls_ca_key }}"
50-
csr_path: "{{ cert_dir }}/{{ tls_ca_csr }}"
51-
selfsigned_not_after: "+{{ tls_ca_valid_days }}d"
48+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_cert }}"
49+
privatekey_path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_key }}"
50+
csr_path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_csr }}"
51+
selfsigned_not_after: "+{{ gen_tls_ca_valid_days }}d"
5252
provider: selfsigned
5353
when: not ca_cert.stat.exists
5454
register: ca_cert_file
5555

5656
- name: Copy the CA certificate to the remote machine
5757
copy:
58-
src: "{{ cert_dir }}/{{ tls_ca_cert }}"
59-
dest: "{{ remote_ca_certs_dir }}"
58+
src: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_cert }}"
59+
dest: "{{ gen_tls_remote_ca_certs_dir }}"
6060
mode: 0644
6161
owner: root
6262
group: root

tasks/generate-client-cert.yaml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
file:
55
state: directory
66
recurse: yes
7-
path: "{{ remote_certs_dir }}/{{ item.path }}"
7+
path: "{{ gen_tls_remote_certs_dir }}/{{ item.path }}"
88
mode: "{{ item.mode }}"
99
owner: root
1010
group: root
@@ -15,14 +15,14 @@
1515
- name: Check if the client private key exists
1616
delegate_to: localhost
1717
stat:
18-
path: "{{ cert_dir }}/{{ tls_client_key }}"
18+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_key }}"
1919
register: client_key
2020

2121
- name: Generate client private key
2222
delegate_to: localhost
2323
community.crypto.openssl_privatekey:
24-
path: "{{ cert_dir }}/{{ tls_client_key }}"
25-
size: "{{ tls_client_key_size}}"
24+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_key }}"
25+
size: "{{ gen_tls_client_key_size}}"
2626
when:
2727
- not client_key.stat.exists
2828
- generate_client_cert
@@ -31,8 +31,8 @@
3131
- name: Copy the key on the server
3232
become: yes
3333
copy:
34-
src: "{{ cert_dir }}/{{ tls_client_key}}"
35-
dest: "{{ remote_certs_dir }}/local/certs/"
34+
src: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_key}}"
35+
dest: "{{ gen_tls_remote_certs_dir }}/local/certs/"
3636
mode: 0644
3737
owner: root
3838
group: root
@@ -41,15 +41,15 @@
4141
- name: Check if the client CSR exists
4242
delegate_to: localhost
4343
stat:
44-
path: "{{ cert_dir }}/{{ tls_client_csr }}"
44+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_csr }}"
4545
register: client_csr
4646

4747
- name: Generate CSR and key for client cert
4848
delegate_to: localhost
4949
community.crypto.openssl_csr:
50-
path: "{{ cert_dir }}/{{ tls_client_csr }}"
51-
privatekey_path: "{{ cert_dir }}/{{ tls_client_key }}"
52-
common_name: "{{ tls_client_commonname }}"
50+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_csr }}"
51+
privatekey_path: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_key }}"
52+
common_name: "{{ gen_tls_client_commonname }}"
5353
extended_key_usage:
5454
- clientAuth
5555
when:
@@ -59,17 +59,17 @@
5959
- name: Check if the client cert exists
6060
delegate_to: localhost
6161
stat:
62-
path: "{{ cert_dir }}/{{ tls_client_cert }}"
62+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_cert }}"
6363
register: client_crt
6464

6565
- name: Create and sign server cert request by CA
6666
delegate_to: localhost
6767
community.crypto.x509_certificate:
68-
path: "{{ cert_dir }}/{{ tls_client_cert }}"
69-
csr_path: "{{ cert_dir }}/{{ tls_client_csr }}"
70-
ownca_not_after: "+{{ tls_client_valid_days }}d"
71-
ownca_path: "{{ cert_dir }}/{{ tls_ca_cert }}"
72-
ownca_privatekey_path: "{{ cert_dir }}/{{ tls_ca_key }}"
68+
path: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_cert }}"
69+
csr_path: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_csr }}"
70+
ownca_not_after: "+{{ gen_tls_client_valid_days }}d"
71+
ownca_path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_cert }}"
72+
ownca_privatekey_path: "{{ gen_tls_cert_dir }}/{{ gen_tls_ca_key }}"
7373
provider: ownca
7474
when:
7575
- not client_crt.stat.exists
@@ -79,8 +79,8 @@
7979
- name: Copy the certificate to the remote machine
8080
become: yes
8181
copy:
82-
src: "{{ cert_dir }}/{{ tls_client_cert }}"
83-
dest: "{{ remote_certs_dir }}/local/private"
82+
src: "{{ gen_tls_cert_dir }}/{{ gen_tls_client_cert }}"
83+
dest: "{{ gen_tls_remote_certs_dir }}/local/private"
8484
mode: 0600
8585
owner: root
8686
group: root

0 commit comments

Comments
 (0)