Move netmaker to deprecated
This commit is contained in:
40
_deprecated/netmaker_server/tasks/certs.yml
Normal file
40
_deprecated/netmaker_server/tasks/certs.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
- name: Generate PrivateKey
|
||||
community.crypto.openssl_privatekey:
|
||||
path: /opt/netmaker_server/certs/node.key
|
||||
owner: 1883 # Set owner to mosquitto-user (all other containers seem to run as root)
|
||||
|
||||
- name: Generate Certificate-Signing-Request from privateKey
|
||||
community.crypto.openssl_csr:
|
||||
path: /opt/netmaker_server/certs/node.csr
|
||||
privatekey_path: /opt/netmaker_server/certs/node.key
|
||||
common_name: "{{ ansible_facts.nodename }}"
|
||||
subject_alt_name:
|
||||
"DNS:{{ netmaker_rqlite.http_host }}.{{ ansible_facts.nodename }},\
|
||||
DNS:{{ netmaker_rqlite.cluster_host }}.{{ ansible_facts.nodename }},\
|
||||
DNS:{{ netmaker_broker.tls_host }}.{{ netmaker_base_domain }},\
|
||||
DNS:{{ netmaker_api.host }}.{{ netmaker_base_domain }},\
|
||||
DNS:{{ netmaker_ui.host }}.{{ netmaker_base_domain }}"
|
||||
|
||||
- name: Fetch CSR
|
||||
ansible.builtin.fetch:
|
||||
src: /opt/netmaker_server/certs/node.csr
|
||||
dest: tmp_files/
|
||||
|
||||
- name: Sign CSR locally with CA
|
||||
local_action: community.crypto.x509_certificate
|
||||
args:
|
||||
path: tmp_files/{{ inventory_hostname }}/opt/netmaker_server/certs/node.crt
|
||||
csr_path: tmp_files/{{ inventory_hostname }}/opt/netmaker_server/certs/node.csr
|
||||
ownca_path: secret_files/netmaker_server/ca/ca.crt
|
||||
ownca_privatekey_path: secret_files/netmaker_server/ca/ca.key
|
||||
provider: ownca
|
||||
|
||||
- name: Copy Signed Certificate
|
||||
ansible.builtin.copy:
|
||||
src: tmp_files/{{ inventory_hostname }}/opt/netmaker_server/certs/node.crt
|
||||
dest: /opt/netmaker_server/certs/node.crt
|
||||
|
||||
- name: Copy CA Certificate
|
||||
ansible.builtin.copy:
|
||||
src: secret_files/netmaker_server/ca/ca.crt
|
||||
dest: /opt/netmaker_server/certs/ca.crt
|
||||
20
_deprecated/netmaker_server/tasks/main.yml
Normal file
20
_deprecated/netmaker_server/tasks/main.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
- import_tasks: ./prerequisites.yml
|
||||
|
||||
- name: Copy folder-structure
|
||||
ansible.builtin.copy:
|
||||
src: opt/netmaker_server
|
||||
dest: /opt/
|
||||
mode: preserve
|
||||
|
||||
- name: Deploy compose file
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yml.template
|
||||
dest: /opt/netmaker_server/docker-compose.yml
|
||||
|
||||
- import_tasks: ./certs.yml
|
||||
|
||||
- import_tasks: ./nginx.yml
|
||||
|
||||
- import_tasks: ./rqlite.yml
|
||||
|
||||
- import_tasks: ./netmaker.yml
|
||||
57
_deprecated/netmaker_server/tasks/netmaker.yml
Normal file
57
_deprecated/netmaker_server/tasks/netmaker.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
- name: Start rest of netmaker-services
|
||||
command: "docker-compose --project-directory /opt/netmaker_server/ up -d"
|
||||
register: command
|
||||
failed_when: command.rc != 0
|
||||
|
||||
- name: Wait for netmaker-api to become available
|
||||
uri:
|
||||
url: 'https://{{ netmaker_api.host }}.{{ netmaker_base_domain }}:{{ netmaker_nginx.advertise_port }}'
|
||||
return_content: yes
|
||||
validate_certs: no
|
||||
status_code:
|
||||
- 404
|
||||
until: uri_output.status == 404
|
||||
retries: 24 # Retries for 24 * 5 seconds = 120 seconds = 2 minutes
|
||||
delay: 5 # Every 5 seconds
|
||||
register: uri_output
|
||||
|
||||
# todo: check if exists?
|
||||
|
||||
- name: Create default mesh-network 'server'
|
||||
uri:
|
||||
validate_certs: no
|
||||
url: 'https://{{ netmaker_api.host }}.{{ netmaker_base_domain }}:{{ netmaker_nginx.advertise_port }}/api/networks'
|
||||
method: POST
|
||||
body:
|
||||
netid: servnet
|
||||
addressrange: 10.92.0.0/24
|
||||
addressrange6: fd92::/64
|
||||
body_format: json
|
||||
headers:
|
||||
Authorization: 'Bearer {{ netmaker_creds.master_key }}'
|
||||
Content-Type: application/json
|
||||
when: "inventory_hostname == groups['netmaker_server'][0]"
|
||||
register: default_mesh
|
||||
until: "default_mesh is not failed"
|
||||
retries: 2
|
||||
delay: 10
|
||||
|
||||
# todo: check if exists?
|
||||
|
||||
- name: Create token for default-network
|
||||
uri:
|
||||
validate_certs: no
|
||||
url: 'https://{{ netmaker_api.host }}.{{ netmaker_base_domain }}:{{ netmaker_nginx.advertise_port }}/api/networks/servnet/keys' # todo: do implementation
|
||||
method: POST
|
||||
body:
|
||||
name: ""
|
||||
uses: 0
|
||||
body_format: json
|
||||
headers:
|
||||
Authorization: 'Bearer {{ netmaker_creds.master_key }}'
|
||||
Content-Type: application/json
|
||||
when: "inventory_hostname == groups['netmaker_server'][0]"
|
||||
register: default_mesh_key
|
||||
until: "default_mesh_key is not failed"
|
||||
retries: 2
|
||||
delay: 10
|
||||
18
_deprecated/netmaker_server/tasks/nginx.yml
Normal file
18
_deprecated/netmaker_server/tasks/nginx.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
- name: Deploy nginx configs
|
||||
template:
|
||||
src: "{{item.src}}"
|
||||
dest: "{{item.dst}}"
|
||||
loop:
|
||||
- { src: 'nginx/proxy.conf.template', dst: '/opt/netmaker_server/nginx/conf/conf.d/proxy.conf' }
|
||||
- { src: 'nginx/passthrough.conf.template', dst: '/opt/netmaker_server/nginx/conf/stream.d/passthrough.conf' }
|
||||
|
||||
- name: Start nginx service
|
||||
command: "docker-compose --project-directory /opt/netmaker_server/ up -d nginx"
|
||||
register: command
|
||||
failed_when: command.rc != 0
|
||||
|
||||
- name: Waiting for nginx to accept connections
|
||||
ansible.builtin.wait_for:
|
||||
host: "{{ inventory_hostname }}"
|
||||
port: 51820
|
||||
state: started
|
||||
9
_deprecated/netmaker_server/tasks/prerequisites.yml
Normal file
9
_deprecated/netmaker_server/tasks/prerequisites.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
- name: Install wireguard
|
||||
package:
|
||||
name:
|
||||
- wireguard
|
||||
state: latest
|
||||
|
||||
- name: Check if default-ipv4-address is private
|
||||
set_fact:
|
||||
private_ipv4_address: "{{ ansible_facts.default_ipv4.address | regex_search('^((10)|(192\\.168)|(172\\.((1[6-9])|(2[0-9])|(3[0-1])))|(100))\\.') }}"
|
||||
42
_deprecated/netmaker_server/tasks/rqlite.yml
Normal file
42
_deprecated/netmaker_server/tasks/rqlite.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
- name: Deploy rqlite config
|
||||
ansible.builtin.template:
|
||||
src: rqlite-config.json.template
|
||||
dest: /opt/netmaker_server/rqlite/config.json
|
||||
|
||||
- name: Start rqlite service for 1st-node
|
||||
command: "docker-compose --project-directory /opt/netmaker_server/ up -d rqlite"
|
||||
register: command
|
||||
failed_when: command.rc != 0
|
||||
when: "inventory_hostname == groups['netmaker_server'][0]"
|
||||
|
||||
- name: Waiting for rqlite to accept connections on 1st-node
|
||||
uri:
|
||||
url: 'https://{{ netmaker_rqlite.http_host }}.{{ inventory_hostname }}:{{ netmaker_nginx.advertise_port }}/status'
|
||||
return_content: yes
|
||||
validate_certs: no
|
||||
status_code:
|
||||
- 401
|
||||
until: uri_output.status == 401
|
||||
retries: 24 # Retries for 24 * 5 seconds = 120 seconds = 2 minutes
|
||||
delay: 5 # Every 5 seconds
|
||||
register: uri_output
|
||||
when: "inventory_hostname == groups['netmaker_server'][0]"
|
||||
|
||||
- name: Start rqlite service for other nodes
|
||||
command: "docker-compose --project-directory /opt/netmaker_server/ up -d rqlite"
|
||||
register: command
|
||||
failed_when: command.rc != 0
|
||||
when: "inventory_hostname != groups['netmaker_server'][0]"
|
||||
|
||||
- name: Waiting for rqlite to accept connections on other nodes
|
||||
uri:
|
||||
url: 'https://{{ netmaker_rqlite.http_host }}.{{ inventory_hostname }}:{{ netmaker_nginx.advertise_port }}/status'
|
||||
return_content: yes
|
||||
validate_certs: no
|
||||
status_code:
|
||||
- 401
|
||||
until: uri_output.status == 401
|
||||
retries: 24 # Retries for 24 * 5 seconds = 120 seconds = 2 minutes
|
||||
delay: 5 # Every 5 seconds
|
||||
register: uri_output
|
||||
when: "inventory_hostname != groups['netmaker_server'][0]"
|
||||
Reference in New Issue
Block a user