GithubHelp home page GithubHelp logo

ogajduse / controller_configuration Goto Github PK

View Code? Open in Web Editor NEW

This project forked from redhat-cop/controller_configuration

0.0 1.0 0.0 2.53 MB

A collection of roles to manage Ansible Controller and previously Ansible Tower

Home Page: https://galaxy.ansible.com/redhat_cop/controller_configuration

Python 2.60% YAML 92.98% Jinja 4.42%

controller_configuration's Introduction

Red Hat Communities of Practice Controller Configuration Collection

Ansible Lint Galaxy Release

This Ansible collection allows for easy interaction with an AWX or Ansible Controller server via Ansible roles using the AWX/Controller collection modules.

REQUIREMENTS

The AWX.AWX OR ANSIBLE.CONTROLLER collections MUST be installed in order for this collection to work. It is recommended they be invoked in the playbook in the following way.

---
- name: Playbook to configure ansible controller post installation
  hosts: localhost
  connection: local
  vars:
    controller_validate_certs: false
  collections:
    - awx.awx

Included content

Click the Content button to see the list of content included in this collection.

Installing this collection

You can install the redhat_cop controller_configuration collection with the Ansible Galaxy CLI:

ansible-galaxy collection install redhat_cop.controller_configuration

You can also include it in a requirements.yml file and install it with ansible-galaxy collection install -r requirements.yml, using the format:

---
collections:
  - name: redhat_cop.controller_configuration
    # If you need a specific version of the collection, you can specify like this:
    # version: ...

Conversion from tower_configuration

If you were using a version of redhat_cop.tower_configuration, please refer to our Conversion Guide here: Conversion Guide

Using this collection

The awx.awx or ansible.controller collection must be invoked in the playbook in order for ansible to pick up the correct modules to use.

The following command will invoke the playbook with the awx collection

ansible-playbook redhat_cop.controller_configuration.configure_awx.yml

The following command will invoke the playbook with the ansible.controller collection

ansible-playbook redhat_cop.controller_configuration.configure_controller.yml

Otherwise it will look for the modules only in your base installation. If there are errors complaining about "couldn't resolve module/action" this is the most likely cause.

- name: Playbook to configure ansible controller post installation
  hosts: localhost
  connection: local
  vars:
    controller_validate_certs: false
  collections:
    - awx.awx

Define following vars here, or in controller_configs/controller_auth.yml controller_hostname: ansible-controller-web-svc-test-project.example.com

You can also specify authentication by a combination of either:

  • controller_hostname, controller_username, controller_password
  • controller_hostname, controller_oauthtoken

The OAuth2 token is the preferred method. You can obtain the token through the preferred controller_token module, or through the AWX CLI login command.

These can be specified via (from highest to lowest precedence):

  • direct role variables as mentioned above
  • environment variables (most useful when running against localhost)
  • a config file path specified by the controller_config_file parameter
  • a config file at ~/.controller_cli.cfg
  • a config file at /etc/controller/controller_cli.cfg

Config file syntax looks like this:

[general]
host = https://localhost:8043
verify_ssl = true
oauth_token = LEdCpKVKc4znzffcpQL5vLG8oyeku6

Controller token module would be invoked with this code:

    - name: Create a new token using controller username/password
      awx.awx.token:
        description: 'Creating token to test controller jobs'
        scope: "write"
        state: present
        controller_host: "{{ controller_hostname }}"
        controller_username: "{{ controller_username }}"
        controller_password: "{{ controller_password }}"

Automate the Automation

Every Ansible Controller instance has it's own particularities and needs. Every administrator team has it's own practices and costumes. This collection allows to addapt to every needs, from small to large scale, having the objects distributed across multiple environments and leveraging Automation Webhook that can be used to link a Git repository and Ansible automation natively.

A complete example of how to use all of the roles present in the collection is available at the following README.md, where all the phases to allow CI/CD for the Controller Configuration are provided.

Scale at your needs

The input data can be organized in a very flexible way, letting the user to use from a single file to an entire file tree to store the controller objects definitions, which could be used as a logical segregation of different applications, as needed in real scenarios.

Controller Export

The awx command line can export json that is compatible with this collection. More details can be found here

See Also

Release and Upgrade Notes

For details on changes between versions, please see the changelog for this collection.

Roadmap

Adding the ability to use direct output from the awx export command in the roles along with the current data model.

Contributing to this collection

We welcome community contributions to this collection. If you find problems, please open an issue or create a PR against the Controller Configuration collection repository. More information about contributing can be found in our Contribution Guidelines.

Licensing

GNU General Public License v3.0 or later.

See LICENSE to see the full text.

controller_configuration's People

Contributors

sean-m-sullivan avatar tompage1994 avatar djdanielsson avatar silvinux avatar ivarmu avatar adonisgarciac avatar ericzolf avatar tonyreveal avatar github-actions[bot] avatar mshriver avatar anthonyloukinas avatar ghurel-rh avatar branic avatar kedark3 avatar willtome avatar jonathanbouligny avatar mpetrive-rh avatar weiyentan avatar suppaduppax avatar excalibrax avatar coolbry95 avatar aglenn360 avatar zed-shamim avatar vojtechdb avatar ipvsean avatar paultownsend avatar bradynathan avatar mazarslan avatar mglantz avatar kborup-redhat avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.