Skip to content

skullops/ansible-rancher-module

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

ansible-rancher-module

Module to manage Rancher through Ansible

You can configure the stacks, the environments and the catalogs.

- name: 'Rancher module'
  hosts: localhost
  connection: local
  gather_facts: no
  tasks:
    - name: 'Setup Rancher'
      rancher:
        url: 'https://rancher.url/'
        access_key: 'ACCESS_KEY'
        secret_key: 'SECRET_KEY'
        catalogs:
          - url: 'https://.../rancher-catalog.git'
            name: 'MyCatalog'
            branch: 'master'
        environments:
          - name: Production
            stacks:
              - name: Janitor
                catalog_entry: 'MyCatalog:Janitor'
                answers:
                  - name: 'FREQUENCY'
                    value: '9200'
    - name: 'Display Registration Token'
      debug:
        msg: "Rancher Production Token is {{ rancher.envs.Production.token }}"

This playbook will :

  • Add or update a catalog named MyCatalog with repository (https://.../rancher-catalog.git) on master branch
  • Add a Production environment if it doesn't exist
  • Add or update a Janitor stack based on the Janitor item of the catalog MyCatalog, with variable FREQUENCY set to 9200
  • Gather fact in rancher.envs with registration token

Parameters

Name Required Value Default
url * Rancher URL
access_key * API Access Key
secret_key * API Secret Key
catalogs List of catalogs to add
environments List of environments to add
clean_envs Keep only specified environments False
clean_catalogs Keep only specified catalogs False
clean_stacks Keep only specified environments False

catalog

url: 'https://.../rancher-catalog.git'
name: 'MyCatalog'
branch: 'master'

branch is by default master

name is used for matching catalog

environments

name: Default
stacks:
  - ...

name is the main key

stacks list of stack

stack

name: Janitor
catalog_entry: 'Arken:Janitor'
answers:
	- name: 'FREQUENCY'
	  value: '9200'

name of the stack

catalog_entry or (rancher_compose and docker_compose) to specify the stack catalog_entry use CatalogName:TemplateKey format, it will load the rancher_compose and docker_compose from the catalog. Or you can directly define your composes. You can find the templateKey when browsing to the item : https://rancherurl/env/1a5/catalog/Arken:infra\*datadog?catalogId=Arken, the key is infra*datadog

answers the different values to use for rancher compose, list of (name, value)

About

Module to manage Rancher through Ansible

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%