somes fixups
This commit is contained in:
31
tasks/authorize_node.yml
Normal file
31
tasks/authorize_node.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
- block:
|
||||
- name: Get Zerotier NodeID
|
||||
shell: zerotier-cli info | awk '{print $3}'
|
||||
register: nodeid
|
||||
changed_when: false
|
||||
|
||||
- name: Set NodeID as fact
|
||||
set_fact:
|
||||
zerotier_node_id: "{{ nodeid.stdout }}"
|
||||
|
||||
- name: Add and authorize members to network
|
||||
uri:
|
||||
url: "{{ zerotier_api_url }}/api/network/{{ zerotier_network_id }}/member/{{ zerotier_node_id }}"
|
||||
method: POST
|
||||
headers:
|
||||
Authorization: bearer {{ zerotier_accesstoken }}
|
||||
body:
|
||||
name: "{{ zerotier_register_short_hostname | ternary(inventory_hostname_short, inventory_hostname) }}"
|
||||
hidden: false
|
||||
config:
|
||||
authorized: "{{ zerotier_authorize_member }}"
|
||||
ipAssignments: "{{ zerotier_member_ip_assignments | default([]) | list }}"
|
||||
body_format: json
|
||||
register: apiresult
|
||||
|
||||
when:
|
||||
- zerotier_accesstoken is defined
|
||||
- not ansible_check_mode
|
||||
tags:
|
||||
- configuration
|
||||
@@ -1,41 +1,9 @@
|
||||
---
|
||||
|
||||
# Redhat variants
|
||||
- block: # Add zerotier repo and it's gpg key
|
||||
- name: Add zerotier gpg key
|
||||
rpm_key:
|
||||
state: present
|
||||
key: https://download.zerotier.com/contact%40zerotier.com.gpg
|
||||
|
||||
- name: Add zerotier repo
|
||||
yum_repository:
|
||||
name: zerotier
|
||||
description: ZeroTier, Inc. RPM Release Repository
|
||||
baseurl: https://download.zerotier.com/redhat/el/$releasever
|
||||
gpgcheck: yes
|
||||
enabled: yes
|
||||
register: zerotier_repo
|
||||
- include_tasks: install/{{ ansible_os_family }}.yml
|
||||
tags:
|
||||
- installation
|
||||
- repositories
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
# Debian variants
|
||||
- block: # Add zerotier repo and it's gpg key if not already done.
|
||||
- name: Check if zerotier is already installed
|
||||
stat:
|
||||
path: /etc/apt/sources.list.d/zerotier.list
|
||||
register: zerotier_repo
|
||||
|
||||
- name: Install zerotier
|
||||
shell: curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && \
|
||||
if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
|
||||
register: zerotier_repo
|
||||
when: zerotier_repo.stat.exists == False
|
||||
tags:
|
||||
- installation
|
||||
- repositories
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- block: #Install and enable zerotier-one
|
||||
- name: Install zerotier-one
|
||||
|
||||
9
tasks/install/Debian.yml
Normal file
9
tasks/install/Debian.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
- name: Add ZeroTier PGP key
|
||||
apt_key:
|
||||
url: "{{ zerotier_gpg_url }}"
|
||||
|
||||
- name: Add ZeroTier APT repository
|
||||
apt_repository:
|
||||
repo: deb {{ zerotier_download_base_url }}/debian/{{ ansible_distribution_release }} {{ ansible_distribution_release }} main
|
||||
filename: zerotier
|
||||
register: zerotier_repo
|
||||
13
tasks/install/RedHat.yml
Normal file
13
tasks/install/RedHat.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
- name: Add ZeroTier gpg key
|
||||
rpm_key:
|
||||
state: present
|
||||
key: "{{ zerotier_gpg_url }}"
|
||||
|
||||
- name: Add ZeroTier repo
|
||||
yum_repository:
|
||||
name: zerotier
|
||||
description: ZeroTier, Inc. RPM Release Repository
|
||||
baseurl: https://download.zerotier.com/redhat/el/$releasever
|
||||
gpgcheck: yes
|
||||
enabled: yes
|
||||
register: zerotier_repo
|
||||
@@ -1,34 +1,7 @@
|
||||
---
|
||||
- block: # Join Zerotier network
|
||||
- name: Get Zerotier NodeID
|
||||
shell: zerotier-cli info | awk '{print $3}'
|
||||
register: nodeid
|
||||
|
||||
- name: Set NodeID as fact
|
||||
set_fact:
|
||||
zerotier_node_id: "{{ nodeid.stdout }}"
|
||||
|
||||
- name: Add and authorize members to network
|
||||
uri:
|
||||
url: "{{ zerotier_api_url }}/api/network/{{ zerotier_network_id }}/member/{{ zerotier_node_id }}"
|
||||
method: POST
|
||||
headers:
|
||||
Authorization: bearer {{ zerotier_accesstoken }}
|
||||
body:
|
||||
name: "{{ inventory_hostname }}"
|
||||
hidden: false
|
||||
config:
|
||||
authorized: true
|
||||
body_format: json
|
||||
register: apiresult
|
||||
|
||||
- name: Join Zerotier network
|
||||
command: zerotier-cli join {{ zerotier_network_id }}
|
||||
args:
|
||||
creates: /var/lib/zerotier-one/networks.d/{{ zerotier_network_id }}.conf
|
||||
|
||||
when:
|
||||
- zerotier_accesstoken is defined
|
||||
- not ansible_check_mode
|
||||
- name: Join ZeroTier network
|
||||
command: zerotier-cli join {{ zerotier_network_id }}
|
||||
args:
|
||||
creates: /var/lib/zerotier-one/networks.d/{{ zerotier_network_id }}.conf
|
||||
tags:
|
||||
- configuration
|
||||
|
||||
@@ -2,12 +2,10 @@
|
||||
# tasks file for ansible-role-zerotier
|
||||
- import_tasks: install.yml
|
||||
|
||||
- name: Check for successfully joined networks
|
||||
shell: zerotier-cli listnetworks | grep 'OK'| awk '{print $3}'
|
||||
register: joinednetworks
|
||||
check_mode: yes
|
||||
|
||||
- include_tasks: join_network.yml
|
||||
- import_tasks: authorize_node.yml
|
||||
when:
|
||||
- 'zerotier_network_id not in joinednetworks.stdout'
|
||||
- zerotier_accesstoken is defined
|
||||
|
||||
- import_tasks: join_network.yml
|
||||
when:
|
||||
- zerotier_network_id is defined
|
||||
|
||||
Reference in New Issue
Block a user