autonomic.gandi/README.md

95 lines
2.5 KiB
Markdown

# autonomic.gandi
[![Build Status](https://drone.autonomic.zone/api/badges/autonomic-cooperative/autonomic.gandi/status.svg)](https://drone.autonomic.zone/autonomic-cooperative/autonomic.gandi)
Ansible libraries for managing Gandi resources.
## Example
```yaml
---
- hosts: localhost
gather_facts: false
connection: local
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
gandi_dns:
gandi_rest_token: abc...
domain: foobar.autonomic.zone
ipv4: 94.130.105.60
state: present
```
## Features
- [x] Create a new DNS entry
- [x] Delete an existing DNS entry
- [ ] Update an existing DNS entry
## Requirements
- [Ansible >= 2.9.6](https://pypi.org/project/ansible/)
- [dns-lexicon >= 3.3.19](https://pypi.org/project/dns-lexicon/) (if using `gandi_dns` module)
```bash
$ pip install ansible==2.6.9 dns-lexicon==3.3.19
```
These should be present on the localhost where you run Ansible.
## Gandi DNS Setup
If you want to use the `gandi_dns` module you need to prepare the environment.
```bash
export PROVIDER="gandi"
export LEXICON_GANDI_AUTH_TOKEN="${pass show users/decentral1se/gandi/api_key)"
export LEXICON_GANDI_API_PROTOCOL="rest"
```
You can test that everything is working by running the following.
```bash
$ lexicon gandi list autonomic.zone A
```
The `gandi_dns` module will provide the `PROVIDER` and
`LEXICON_GANDI_API_PROTOCOL` environment variables internally so you only need
to pass `LEXICON_GANDI_AUTH_TOKEN` as the `gandi_rest_token` argument to the
task or expose it in the environment and it will be picked up.
## Usage
Include an entry in your `requirements.yml` like so.
```yaml
- src: https://git.autonomic.zone/autonomic-cooperative/autonomic.gandi/archive/0.0.5.tar.gz
name: autonomic.gandi
```
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`.
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
```