No description
Find a file
semantic-release-bot 6b3522a58b chore(release): 1.8.0 [skip ci]
# [1.8.0](https://github.com/de-it-krachten/ansible-role-olam/compare/v1.7.2...v1.8.0) (2026-03-15)

### Bug Fixes

* Allign olam.py with receptor.conf ([562d4e4](562d4e426a))
* Always perform migration steps ([3570ef2](3570ef28ce))
* Use olam_hostname instead of olam_cluster_ip ([a372332](a3723321f3))
* Use postgresql_service variable when defined ([c82dec3](c82dec3b16))

### Features

* Added support for Oracle Linux 9 ([ca235a5](ca235a568b))
* Defaults to OLAM v2.3 ([675b6a4](675b6a4a65))
2026-03-15 11:39:36 +00:00
.github/workflows Update supported platforms & CI 2026-03-14 19:47:23 +01:00
defaults Fix hostname + queues 2026-03-10 22:45:53 +01:00
handlers fix: Use postgresql_service variable when defined 2026-03-08 14:28:25 +01:00
meta fix: Use postgresql_service variable when defined 2026-03-08 14:28:25 +01:00
molecule/default fix: Use olam_hostname instead of olam_cluster_ip 2026-03-09 15:03:47 +01:00
tasks Update CI 2026-03-11 21:43:43 +01:00
templates feat: Defaults to OLAM v2.3 2026-03-10 18:28:04 +01:00
.ansible-lint feat: Update CI to latest standards 2022-10-11 20:41:28 +02:00
.cicd Update CI 2026-03-06 22:54:41 +01:00
.cicd.overwrite fix: Use postgresql_service variable when defined 2026-03-08 14:28:25 +01:00
.collections Update CI 2024-04-11 21:21:00 +02:00
.gitignore feat: Update supported platforms & CI 2024-12-29 11:35:58 +01:00
.releaserc.yml fix: Add var 'olam_podman_system_migrate' that will not make OLAM crash when running from/on itself 2025-09-25 17:31:31 +02:00
.roles feat: Update CI to latest standards 2022-10-11 20:41:28 +02:00
.yamllint feat: Update supported platforms & CI 2024-12-29 11:35:58 +01:00
CHANGELOG.md chore(release): 1.8.0 [skip ci] 2026-03-15 11:39:36 +00:00
README.md Update README 2026-03-10 22:50:31 +01:00

CI

ansible-role-olam

Installs Oracle Linux Automation Manager (OLAM), Oracle's implementation of AWX
This role is based on https://docs.oracle.com/en/learn/olam-install

Dependencies

Roles

  • deitkrachten.firewall
  • deitkrachten.firewalld
  • deitkrachten.openssl
  • deitkrachten.postgresql
  • deitkrachten.python
  • deitkrachten.redis

Collections

  • community.general
  • containers.podman

Platforms

Supported platforms

  • OracleLinux 8
  • OracleLinux 9

Note: 1 : no automated testing is performed on these platforms

Role Variables

defaults/main.yml


# OLAM version
olam_version: '2.3'
olam_versions: [ '1.0', '2.0', '2.2', '2.3' ]

# Should IPv6 be disabled in nginx
olam_disable_ipv6: false

# Postgresql settings
olam_postgresql_version: 13
olam_db_name: awx
olam_db_host: localhost
olam_db_port: 5432
olam_db_user: awx
olam_db_password: awx

# Set OLAM base location
olam_root: /var/lib/ol-automation-manager

# Set owner/group
olam_owner: awx
olam_group: awx

# Location where to write installation logs
olam_log_dir: /var/lib/ol-automation-manager

# IP address used for OLAM
olam_service_ip: "{{ ansible_all_ipv4_addresses[0] }}"

# OLAM admin user
olam_admin_username: admin
# olam_admin_password: "Admin123!"  # Minimal of 8 characters
olam_admin_email: admin@example.com
olam_admin_force_reset: false

# Define content of /etc/tower/SECRET_KEY
# This is an important secret at is used to encrypt password before storing it in the database.
# olam_secret_key: "YL9CKCjHyLvMFpZ3fW9g4NtzCbx5Cj"  # Minimal of 16 characters

# Should demo data be loaded
# olam_demo_data: true
olam_demo_data: false

# # Expose postgresql database externally
# olam_db_external: false

# OLAM hostname
olam_hostname: "{{ ansible_hostname }}"

# awxkit (awx/olam cli)
olam_install_awxkit: true

# List of pypi packages to install
olam_awxkit_packages:
  - "awxkit==24.6.1"
  - "pyyaml"

# venv root
olam_awxkit_venv_path: /usr/local/venv/awxkit

# Python version to use
olam_awxkit_venv_python: /usr/bin/python3.11

# Should the 'podman system migrate' be executed
# Set to false when running this role from OLAM on itself
olam_podman_system_migrate: true

Example Playbook

molecule/default/converge.yml


- name: sample playbook for role 'olam'
  hosts: all
  become: 'yes'
  vars:
    molecule_driver: '{{ lookup(''env'', ''MOLECULE_DRIVER_NAME'') }}'
    olam_db_external: true
    olam_disable_ipv6: true
    olam_secret_key: YL9CKCjHyLvMFpZ3fW9g4NtzCbx5Cj
    olam_admin_password: Admin123!
    ansible_python_interpreter: /usr/bin/python3
    firewall_ports:
      - port: 80
        proto: tcp
      - port: 443
        proto: tcp
    postgresql_version: 16
    postgresql_db_name: awx
    postgresql_db_user: awx
    postgresql_db_user_full_access: true
    postgresql_db_password: awx
    postgresql_password_encryption_scheme: scram-sha-256
    postgresql_install_optional_packages: true
    redis_settings:
      maxmemory: 100mb
      maxmemory-policy: volatile-ttl
      bind: 127.0.0.1
      supervised: systemd
      unixsocket: /var/run/redis/redis.sock
      unixsocketperm: '775'
    olam_ssl_remote_src: true
    olam_ssl_key: /etc/pki/tls/private/{{ inventory_hostname }}.key
    olam_ssl_certificate: /etc/pki/tls/certs/{{ inventory_hostname }}.crt
  roles:
    - deitkrachten.python
    - deitkrachten.firewalld
    - deitkrachten.firewall
    - deitkrachten.postgresql
    - deitkrachten.redis
    - deitkrachten.openssl
    - deitkrachten.redis
  tasks:
    - name: Include role 'olam'
      ansible.builtin.include_role:
        name: olam