Compare commits
11 Commits
v0.1-beta.
...
v0.2-beta.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f82ab21515 | ||
|
|
03786a8f7d | ||
|
|
3b0cdf725f | ||
|
|
5ab3e67331 | ||
|
|
097a4f055b | ||
|
|
62682def92 | ||
|
|
c90f7556c2 | ||
|
|
9b6296e678 | ||
|
|
51d2085c02 | ||
|
|
e70be64ef7 | ||
|
|
769e901ca1 |
12
README.md
12
README.md
@@ -3,7 +3,7 @@
|
|||||||
Zerotier
|
Zerotier
|
||||||
=========
|
=========
|
||||||
|
|
||||||
This Ansible role installs the zerotier-one package from Zerotier's yum repo, adds and authorizes new members to (existing) Zerotier network and tells the new members to join the network.
|
This Ansible role installs the zerotier-one package, adds and authorizes new members to (existing) Zerotier network and tells the new members to join the network.
|
||||||
|
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
@@ -13,24 +13,24 @@ This roles requires an access token for the Zerotier API. This enables the role
|
|||||||
Role Variables
|
Role Variables
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
###zerotier_api_url
|
### zerotier_api_url
|
||||||
The url where the Zerotier API lives. Must use https protocol.
|
The url where the Zerotier API lives. Must use https protocol.
|
||||||
Default: https://my.zerotier.com
|
Default: https://my.zerotier.com
|
||||||
|
|
||||||
###zerotier_accesstoken
|
### zerotier_accesstoken
|
||||||
The access token needed to authorize with the Zerotier API. You can generate one in your account settings on my.zerotier.com.
|
The access token needed to authorize with the Zerotier API. You can generate one in your account settings on my.zerotier.com.
|
||||||
|
|
||||||
###zerotier_network_id (required)
|
### zerotier_network_id (required)
|
||||||
The 16 character network ID of the network the new members should join.
|
The 16 character network ID of the network the new members should join.
|
||||||
|
|
||||||
Example Playbook
|
Example Playbook
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
```yaml
|
||||||
- hosts: servers
|
- hosts: servers
|
||||||
vars:
|
vars:
|
||||||
zerotier_network_id: 1234567890qwerty
|
zerotier_network_id: 1234567890qwerty
|
||||||
zerotier_accesstoken: "{{ vault_zerotier_accesstoken }}"
|
zerotier_accesstoken: "{{ vault_zerotier_accesstoken }}"
|
||||||
roles:
|
roles:
|
||||||
- { role: m4rcu5nl.zerotier }
|
- { role: m4rcu5nl.zerotier }
|
||||||
|
```
|
||||||
|
|||||||
@@ -36,6 +36,9 @@ galaxy_info:
|
|||||||
- name: EL
|
- name: EL
|
||||||
versions:
|
versions:
|
||||||
- 7
|
- 7
|
||||||
|
- name: Debian
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
# - name: Fedora
|
# - name: Fedora
|
||||||
# versions:
|
# versions:
|
||||||
# - all
|
# - all
|
||||||
@@ -49,7 +52,6 @@ galaxy_info:
|
|||||||
|
|
||||||
galaxy_tags:
|
galaxy_tags:
|
||||||
- zerotier-one
|
- zerotier-one
|
||||||
- CentOS 7
|
|
||||||
# List tags for your role here, one per line. A tag is a keyword that describes
|
# List tags for your role here, one per line. A tag is a keyword that describes
|
||||||
# and categorizes the role. Users find roles by searching for tags. Be sure to
|
# and categorizes the role. Users find roles by searching for tags. Be sure to
|
||||||
# remove the '[]' above, if you add tags to this list.
|
# remove the '[]' above, if you add tags to this list.
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
# Redhat variants
|
||||||
- block: # Add zerotier repo and it's gpg key
|
- block: # Add zerotier repo and it's gpg key
|
||||||
- name: Add zerotier gpg key
|
- name: Add zerotier gpg key
|
||||||
rpm_key:
|
rpm_key:
|
||||||
@@ -13,10 +15,29 @@
|
|||||||
gpgcheck: yes
|
gpgcheck: yes
|
||||||
enabled: yes
|
enabled: yes
|
||||||
register: zerotier_repo
|
register: zerotier_repo
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- installation
|
- installation
|
||||||
- repositories
|
- 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
|
||||||
|
package:
|
||||||
|
name: zerotier-one
|
||||||
|
state: present
|
||||||
|
check_mode: true
|
||||||
|
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.changed
|
||||||
|
tags:
|
||||||
|
- installation
|
||||||
|
- repositories
|
||||||
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
- block: #Install and enable zerotier-one
|
- block: #Install and enable zerotier-one
|
||||||
- name: Install zerotier-one
|
- name: Install zerotier-one
|
||||||
@@ -36,6 +57,7 @@
|
|||||||
|
|
||||||
when:
|
when:
|
||||||
- zerotier_repo|succeeded
|
- zerotier_repo|succeeded
|
||||||
|
- not ansible_check_mode
|
||||||
tags:
|
tags:
|
||||||
- installation
|
- installation
|
||||||
- packages
|
- packages
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
- block: # Join Zerotier network
|
- block: # Join Zerotier network
|
||||||
- name: Get Zerotier NodeID
|
- name: Get Zerotier NodeID
|
||||||
shell: /sbin/zerotier-cli info | awk '{print $3}'
|
shell: zerotier-cli info | awk '{print $3}'
|
||||||
register: nodeid
|
register: nodeid
|
||||||
|
|
||||||
- name: Set NodeID as fact
|
- name: Set NodeID as fact
|
||||||
@@ -23,11 +23,12 @@
|
|||||||
register: apiresult
|
register: apiresult
|
||||||
|
|
||||||
- name: Join Zerotier network
|
- name: Join Zerotier network
|
||||||
command: /sbin/zerotier-cli join {{ zerotier_network_id }}
|
command: zerotier-cli join {{ zerotier_network_id }}
|
||||||
args:
|
args:
|
||||||
creates: /var/lib/zerotier-one/networks.d/{{ zerotier_network_id }}.conf
|
creates: /var/lib/zerotier-one/networks.d/{{ zerotier_network_id }}.conf
|
||||||
|
|
||||||
when:
|
when:
|
||||||
- zerotier_accesstoken is defined
|
- zerotier_accesstoken is defined
|
||||||
|
- not ansible_check_mode
|
||||||
tags:
|
tags:
|
||||||
- configuration
|
- configuration
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
---
|
---
|
||||||
# tasks file for ansible-role-zerotier
|
# tasks file for ansible-role-zerotier
|
||||||
- include: install.yml
|
- import_tasks: install.yml
|
||||||
|
|
||||||
- name: Check for successfully joined networks
|
- name: Check for successfully joined networks
|
||||||
shell: zerotier-cli listnetworks | grep 'OK'| awk '{print $3}'
|
shell: zerotier-cli listnetworks | grep 'OK'| awk '{print $3}'
|
||||||
register: joinednetworks
|
register: joinednetworks
|
||||||
|
check_mode: yes
|
||||||
|
|
||||||
- include: join_network.yml
|
- include_tasks: join_network.yml
|
||||||
when:
|
when:
|
||||||
- 'zerotier_network_id not in joinednetworks.stdout'
|
- 'zerotier_network_id not in joinednetworks.stdout'
|
||||||
- zerotier_accesstoken is defined
|
- zerotier_accesstoken is defined
|
||||||
|
|||||||
Reference in New Issue
Block a user