9 Commits

Author SHA1 Message Date
bdeed4cd46 Add mirror note
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-09 08:30:30 +02:00
5e1ebc6329 Add required version for crypto
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-29 14:50:57 +02:00
767316125d Pass in the right env var too
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-29 14:46:16 +02:00
995592a555 Add example and drop non-existant extra
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-29 14:41:47 +02:00
f1abb8cb37 Remove import not available in older Ansible
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-29 14:19:19 +02:00
6544f2acc8 Bump version (forgot to include in 0.0.3 tag) 2020-03-29 14:17:30 +02:00
bebccfab99 Pass tar.gz file
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-29 10:40:42 +02:00
ff000ed5b1 Bump version
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-29 10:39:33 +02:00
f4a49b5843 Add missing role folders
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-29 10:37:35 +02:00
6 changed files with 51 additions and 14 deletions

View File

@ -12,6 +12,21 @@ Ansible libraries for managing Gandi resources.
gather_facts: false gather_facts: false
connection: local connection: local
tasks: tasks:
- name: Prepare Python dependencies
become: true
apt:
name: python3-pip
state: present
- name: Install dns-lexicon system wide
become: true
pip:
name: "{{ item }}"
executable: /usr/bin/pip3
with_items:
- dns-lexicon==3.3.19
- cryptography==2.8
- name: Create foobar.autonomic.zone - name: Create foobar.autonomic.zone
gandi_dns: gandi_dns:
gandi_rest_token: abc... gandi_rest_token: abc...
@ -32,7 +47,7 @@ Ansible libraries for managing Gandi resources.
- [dns-lexicon >= 3.3.19](https://pypi.org/project/dns-lexicon/) (if using `gandi_dns` module) - [dns-lexicon >= 3.3.19](https://pypi.org/project/dns-lexicon/) (if using `gandi_dns` module)
```bash ```bash
$ pip install ansible==2.6.9 "dns-lexicon[gandi]==3.3.19" $ pip install ansible==2.6.9 dns-lexicon==3.3.19
``` ```
These should be present on the localhost where you run Ansible. These should be present on the localhost where you run Ansible.
@ -63,11 +78,17 @@ task or expose it in the environment and it will be picked up.
Include an entry in your `requirements.yml` like so. Include an entry in your `requirements.yml` like so.
```yaml ```yaml
- src: https://git.autonomic.zone/autonomic-cooperative/autonomic.gandi - src: https://git.autonomic.zone/autonomic-cooperative/autonomic.gandi/archive/0.0.5.tar.gz
version: 0.0.2
name: autonomic.gandi name: autonomic.gandi
``` ```
See the [releases](https://git.autonomic.zone/autonomic-cooperative/autonomic.gandi/releases) for which is the latest version. See the [releases](https://git.autonomic.zone/autonomic-cooperative/autonomic.gandi/releases) for which is the latest version.
Then make sure to download the role with `ansible-galaxy install -r requirements.yml`. Then make sure to download the role with `ansible-galaxy install -r requirements.yml`.
Note, we also keep a mirror on [git.coop](https://git.coop) for when we run internal Gitea upgrades.
```
- src: https://git.coop/decentral1se/autonomic.gandi/-/archive/0.0.5/autonomic.gandi-0.0.5.tar.gz
name: autonomic.gandi
```

1
defaults/main.yml Normal file
View File

@ -0,0 +1 @@
---

View File

@ -5,11 +5,7 @@ import os
import traceback import traceback
from subprocess import CalledProcessError, check_output from subprocess import CalledProcessError, check_output
from ansible.module_utils.basic import ( from ansible.module_utils.basic import AnsibleModule, env_fallback
AnsibleModule,
env_fallback,
missing_required_lib,
)
DOCUMENTATION = """ DOCUMENTATION = """
--- ---
@ -74,18 +70,19 @@ def error_msg(domain):
).format(domain=domain) ).format(domain=domain)
def get_env(): def get_env(module):
"""Build environment for running command-line commands.""" """Build environment for running command-line commands."""
env = os.environ.copy() env = os.environ.copy()
env["PROVIDER"] = "gandi" env["PROVIDER"] = "gandi"
env["LEXICON_GANDI_API_PROTOCOL"] = "rest" env["LEXICON_GANDI_API_PROTOCOL"] = "rest"
env["LEXICON_GANDI_AUTH_TOKEN"] = module.params["gandi_rest_token"]
return env return env
def retrieve_domain_info(module): def retrieve_domain_info(module):
"""Retrieve all information about a specific domain.""" """Retrieve all information about a specific domain."""
domain = module.params["domain"] domain = module.params["domain"]
env = get_env() env = get_env(module)
try: try:
return json.loads( return json.loads(
@ -102,7 +99,7 @@ def create_domain(module):
"""Create a new DNS entry.""" """Create a new DNS entry."""
domain = module.params["domain"] domain = module.params["domain"]
ipv4 = module.params["ipv4"] ipv4 = module.params["ipv4"]
env = get_env() env = get_env(module)
try: try:
return json.loads( return json.loads(
@ -131,7 +128,7 @@ def delete_domain(module):
"""Delete an existing DNS entry.""" """Delete an existing DNS entry."""
domain = module.params["domain"] domain = module.params["domain"]
ipv4 = module.params["ipv4"] ipv4 = module.params["ipv4"]
env = get_env() env = get_env(module)
try: try:
return json.loads( return json.loads(
@ -177,7 +174,11 @@ def main():
) )
if not HAS_DNS_LEXICON_DEPENDENCY: if not HAS_DNS_LEXICON_DEPENDENCY:
msg = missing_required_lib("lexicon") msg = (
"Missing dns-lexicon, please run apt "
"install -y python3-lexicon or install it "
" using the Ansible `apt` module."
)
module.fail_json(msg=msg, exception=DNS_LEXICON_IMP_ERR) module.fail_json(msg=msg, exception=DNS_LEXICON_IMP_ERR)
domains = retrieve_domain_info(module) domains = retrieve_domain_info(module)

13
meta/main.yml Normal file
View File

@ -0,0 +1,13 @@
---
dependencies: []
galaxy_info:
author: autonomic
description: Ansible libraries for managing Gandi resources.
company: Autonomic
license: GPLv
min_ansible_version: 2.9.6
platforms:
- name: Debian
versions:
- buster

View File

@ -13,7 +13,7 @@ include_trailing_comma = True
[metadata] [metadata]
name = autonomic.gandi name = autonomic.gandi
author = decentral1se author = decentral1se
version = 0.0.2 version = 0.0.5
[options] [options]
packages = find: packages = find:

1
tasks/main.yml Normal file
View File

@ -0,0 +1 @@
---