somes fixups

This commit is contained in:
Andy Shinn
2018-02-15 19:59:14 -06:00
parent c6cacd05ef
commit f1cc5c4e49
9 changed files with 85 additions and 79 deletions

31
tasks/authorize_node.yml Normal file
View 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

View File

@@ -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
View 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
View 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

View File

@@ -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

View File

@@ -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