피드 구독

One of the goals of Red Hat Services is to bring a standardized and collaboratively created toolkit and approach to customers to speed up and improve automation practices. Red Hat’s Automation Community of Practice--a part of Red Hat Services--has created a new collection that acts as a wrapper for the ansible.tower collection, creating a powerful toolkit to help speed up the automation of an Ansible Tower environment. This post will provide an overview of what’s in the collection and show you how to install and use the tower_configuration. 

Why a wrapper collection was needed

With the most recent releases of Ansible and its transition to using collections last year, a whole wave of community collections have been developed to expand the Ansible ecosystem. One such collection is the “ansible.tower” (based on the upstream “awx.awx”) collection, which creates replacements for the outdated Ansible Tower web modules

The common use case of automating the configuration of Ansible Tower had previously led to us creating a vast array of similar solutions to enable the transition from configuration as code into actual Ansible Tower objects. The convergence of a single, standardised solution has led to the creation of the “tower_configuration” collection, which provides a set of easy-to-use roles for the single purpose for configuring Ansible Tower objects. 

Although the Ansible Tower collection provides a comprehensive set of plugins and modules, there is no overall build configuration approach using roles and playbooks. At present, there is also a lack of a standardized model to drive such automation. Let’s see how Red Hat Services is helping with a standardized model.

What is inside the collection?

The collection contains wrapper roles for each of the Ansible Tower collection modules and in turn, many of the API endpoints for Ansible Tower. We have also put together a standardized data model to be able to use predictable variables to define Tower objects (such as tower_projects, tower_credentials, tower_inventories, etc.) along with detailed example playbooks which provide a demo configuration for Ansible Tower. Finally, the collection makes heavy use of CI practices using code reviews, automated linting (ansible-lint and yaml-lint), and automated integration tests upon new contributions and releases.

Getting started

First things first, we need to install the collection before we can make use of it. To do that, use the following command.

 $ ansible-galaxy collection install redhat_cop.tower_configuration
We will also need to install the dependency for the collection: the ansible.tower collection from Automation Hub (for instructions on configuring the galaxy CLI to pull from Automation Hub see here).
 $ ansible-galaxy collection install ansible.tower

In the below example, two organizations will be created: Satellite and Default, as well as a Demo Project inside of the Default Organization created from the tower-examples git repository. The following playbook defines all of this.

$ vim tower_config.yml
---
- name: Playbook to configure ansible tower organizations
  hosts: localhost
  collections:
    - redhat_cop.tower_configuration
    - ansible.tower
  vars:
    tower_hostname: https://tower.example.com
    tower_username: admin
    tower_password: password
    tower_organizations:
      - name: Satellite
      - name: Default
    tower_projects:
      - name: Demo project
        organization: Default
        scm_branch: master
        scm_type: git
        scm_update_on_launch: true
        scm_url: https://github.com/ansible/tower-example.git
  roles:
    - organization
    - projects

Now we can run the ansible-playbook command to create.

$ ansible-playbook tower_config.yml

Where to go next?

The previous example gives a short introduction for creating a Tower configuration. But we can’t do much with just an Organization and a Project. Next, we want to create objects such as job templates, credentials, inventories, and many more. Fortunately, these can be created in much the same way. 

For the full details of what options you can apply to each Tower object type, visit the git repository, which contains detailed examples on how to shape your Tower configuration playbook. 

We also invite you to learn more about how Red Hat Services can help with furthering your automation journey.


저자 소개

Red Hat consultant focusing on automation and containers, helping to drive customer success using agile and DevOps practices.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Original series icon

오리지널 쇼

엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리