Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: Use vars/RedHat_N.yml symlink for CentOS, Rocky, Alma wherever possible #1

Merged
merged 1 commit into from
Oct 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .ansible-lint
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ exclude_paths:
- .markdownlint.yaml
- examples/roles/
mock_roles:
- linux-system-roles.template
- linux-system-roles.aide
supported_ansible_also:
- "2.14.0"
2 changes: 1 addition & 1 deletion .github/workflows/tft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ jobs:
api_key: ${{ secrets.TF_API_KEY_RH }}
update_pull_request_status: false
tmt_hardware: '{ "memory": ">= ${{ needs.prepare_vars.outputs.memory }} MB" }'
tmt_plan_filter: "tag:general,template"
tmt_plan_filter: "tag:general,aide"

- name: Set final commit status
uses: myrotvorets/set-commit-status-action@master
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/weekly_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: Weekly CI trigger
on: # yamllint disable-line rule:truthy
workflow_dispatch:
schedule:
- cron: 0 0 * * 6
- cron: 0 11 * * 6
env:
BRANCH_NAME: weekly-ci
COMMIT_MESSAGE: "ci: This PR is to trigger periodic CI testing"
Expand Down
27 changes: 12 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
# Role Name

[![ansible-lint.yml](https://github.com/linux-system-roles/template/actions/workflows/ansible-lint.yml/badge.svg)](https://github.com/linux-system-roles/template/actions/workflows/ansible-lint.yml) [![ansible-test.yml](https://github.com/linux-system-roles/template/actions/workflows/ansible-test.yml/badge.svg)](https://github.com/linux-system-roles/template/actions/workflows/ansible-test.yml) [![markdownlint.yml](https://github.com/linux-system-roles/template/actions/workflows/markdownlint.yml/badge.svg)](https://github.com/linux-system-roles/template/actions/workflows/markdownlint.yml) [![shellcheck.yml](https://github.com/linux-system-roles/template/actions/workflows/shellcheck.yml/badge.svg)](https://github.com/linux-system-roles/template/actions/workflows/shellcheck.yml) [![tft.yml](https://github.com/linux-system-roles/template/actions/workflows/tft.yml/badge.svg)](https://github.com/linux-system-roles/template/actions/workflows/tft.yml) [![tft_citest_bad.yml](https://github.com/linux-system-roles/template/actions/workflows/tft_citest_bad.yml/badge.svg)](https://github.com/linux-system-roles/template/actions/workflows/tft_citest_bad.yml) [![woke.yml](https://github.com/linux-system-roles/template/actions/workflows/woke.yml/badge.svg)](https://github.com/linux-system-roles/template/actions/workflows/woke.yml)
[![ansible-lint.yml](https://github.com/linux-system-roles/aide/actions/workflows/ansible-lint.yml/badge.svg)](https://github.com/linux-system-roles/aide/actions/workflows/ansible-lint.yml) [![ansible-test.yml](https://github.com/linux-system-roles/aide/actions/workflows/ansible-test.yml/badge.svg)](https://github.com/linux-system-roles/aide/actions/workflows/ansible-test.yml) [![markdownlint.yml](https://github.com/linux-system-roles/aide/actions/workflows/markdownlint.yml/badge.svg)](https://github.com/linux-system-roles/aide/actions/workflows/markdownlint.yml) [![shellcheck.yml](https://github.com/linux-system-roles/aide/actions/workflows/shellcheck.yml/badge.svg)](https://github.com/linux-system-roles/aide/actions/workflows/shellcheck.yml) [![tft.yml](https://github.com/linux-system-roles/aide/actions/workflows/tft.yml/badge.svg)](https://github.com/linux-system-roles/aide/actions/workflows/tft.yml) [![tft_citest_bad.yml](https://github.com/linux-system-roles/aide/actions/workflows/tft_citest_bad.yml/badge.svg)](https://github.com/linux-system-roles/aide/actions/workflows/tft_citest_bad.yml) [![woke.yml](https://github.com/linux-system-roles/aide/actions/workflows/woke.yml/badge.svg)](https://github.com/linux-system-roles/aide/actions/workflows/woke.yml)

![template](https://github.com/linux-system-roles/template/workflows/tox/badge.svg)

A template for an ansible role that configures some GNU/Linux subsystem or
service. A brief description of the role goes here.
Ansible role for managing Advanced Intrusion Detection Environment (AIDE).

## Requirements

Expand Down Expand Up @@ -34,12 +31,12 @@ A description of all input variables (i.e. variables that are defined in
`defaults/main.yml`) for the role should go here as these form an API of the
role. Each variable should have its own section e.g.

### template_foo
### aide_foo

This variable is required. It is a string that lists the foo of the role.
There is no default value.

### template_bar
### aide_bar

This variable is optional. It is a boolean that tells the role to disable bar.
The default value is `true`.
Expand All @@ -53,8 +50,8 @@ the lifetime.
Example of setting the variables:

```yaml
template_foo: "oof"
template_bar: false
aide_foo: "oof"
aide_bar: false
```

## Variables Exported by the Role
Expand All @@ -63,12 +60,12 @@ This section is optional. Some roles may export variables for playbooks to
use later. These are analogous to "return values" in Ansible modules. For
example, if a role performs some action that will require a system reboot, but
the user wants to defer the reboot, the role might set a variable like
`template_reboot_needed: true` that the playbook can use to reboot at a more
`aide_reboot_needed: true` that the playbook can use to reboot at a more
convenient time.

Example:

### template_reboot_needed
### aide_reboot_needed

Default `false` - if `true`, this means a reboot is needed to apply the changes
made by the role
Expand All @@ -79,13 +76,13 @@ Including an example of how to use your role (for instance, with variables
passed in as parameters) is always nice for users too:

```yaml
- name: Manage the template subsystem
- name: Manage the aide subsystem
hosts: all
vars:
template_foo: "foo foo!"
template_bar: false
aide_foo: "foo foo!"
aide_bar: false
roles:
- linux-system-roles.template
- linux-system-roles.aide
```

More examples can be provided in the [`examples/`](examples) directory. These
Expand Down
8 changes: 4 additions & 4 deletions contributing.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Contributing to the template Linux System Role
# Contributing to the aide Linux System Role

## Where to start

Expand All @@ -12,10 +12,10 @@ This has all of the common information that all role developers need:
* How to create git commits and submit pull requests

**Bugs and needed implementations** are listed on
[Github Issues](https://github.com/linux-system-roles/template/issues).
[Github Issues](https://github.com/linux-system-roles/aide/issues).
Issues labeled with
[**help wanted**](https://github.com/linux-system-roles/template/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
[**help wanted**](https://github.com/linux-system-roles/aide/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
are likely to be suitable for new contributors!

**Code** is managed on [Github](https://github.com/linux-system-roles/template), using
**Code** is managed on [Github](https://github.com/linux-system-roles/aide), using
[Pull Requests](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests).
4 changes: 2 additions & 2 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
# This file also serves as a documentation for such a variables.

# Examples of role input variables:
template_foo: foo
template_bar: true
aide_foo: foo
aide_bar: true
8 changes: 4 additions & 4 deletions examples/simple.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# SPDX-License-Identifier: MIT
---
- name: Example template role invocation
- name: Example aide role invocation
hosts: all
vars:
template_foo: example variable value
template_bar: false
aide_foo: example variable value
aide_bar: false
roles:
- linux-system-roles.template
- linux-system-roles.aide
4 changes: 2 additions & 2 deletions handlers/main.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: MIT
---
- name: Handler for template to restart services
- name: Handler for aide to restart services
service:
name: "{{ item }}"
state: restarted
loop: "{{ __template_services }}"
loop: "{{ __aide_services }}"
14 changes: 7 additions & 7 deletions tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@
# Examples of some tasks:
- name: Ensure required packages are installed
package:
name: "{{ __template_packages }}"
name: "{{ __aide_packages }}"
state: present
use: "{{ (__template_is_ostree | d(false)) |
use: "{{ (__aide_is_ostree | d(false)) |
ternary('ansible.posix.rhel_rpm_ostree', omit) }}"

- name: Ensure required services are enabled and started
service:
name: "{{ item }}"
state: started
enabled: true
loop: "{{ __template_services }}"
loop: "{{ __aide_services }}"

- name: Generate /etc/{{ __template_foo_config }}
- name: Generate /etc/{{ __aide_foo_config }}
template:
src: "{{ __template_foo_config }}.j2"
dest: /etc/{{ __template_foo_config }}
src: "{{ __aide_foo_config }}.j2"
dest: /etc/{{ __aide_foo_config }}
backup: true
mode: "0400"
notify: Handler for template to restart services
notify: Handler for aide to restart services
4 changes: 2 additions & 2 deletions tests/setup-snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
tasks:
- name: Set platform/version specific variables
include_role:
name: linux-system-roles.template
name: linux-system-roles.aide
tasks_from: set_vars.yml
public: true

- name: Install test packages
package:
name: "{{ __template_packages }}"
name: "{{ __aide_packages }}"
state: present
4 changes: 2 additions & 2 deletions tests/tests_default.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
hosts: all
gather_facts: false # test that role works in this case
roles:
- linux-system-roles.template
- linux-system-roles.aide
tasks:
- name: Check header for ansible_managed, fingerprint
include_tasks: tasks/check_header.yml
vars:
__file: /etc/foo.conf
__fingerprint: system_role:template
__fingerprint: system_role:aide
2 changes: 1 addition & 1 deletion tests/tests_include_vars_from_parent.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
import_role:
name: caller
vars:
roletoinclude: linux-system-roles.template
roletoinclude: linux-system-roles.aide

- name: Cleanup
file:
Expand Down
20 changes: 20 additions & 0 deletions tests/vars/rh_distros_vars.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# vars for handling conditionals for RedHat and clones
# DO NOT EDIT - file is auto-generated
# repo is https://github.com/linux-system-roles/.github
# file is playbooks/templates/tests/vars/rh_distros_vars.yml
---
# Ansible distribution identifiers that the role treats like RHEL
__aide_rh_distros:
- AlmaLinux
- CentOS
- RedHat
- Rocky

# Same as above but includes Fedora
__aide_rh_distros_fedora: "{{ __aide_rh_distros + ['Fedora'] }}"

# Use this in conditionals to check if distro is Red Hat or clone
__aide_is_rh_distro: "{{ ansible_distribution in __aide_rh_distros }}"

# Use this in conditionals to check if distro is Red Hat or clone, or Fedora
__aide_is_rh_distro_fedora: "{{ ansible_distribution in __aide_rh_distros_fedora }}"
1 change: 1 addition & 0 deletions vars/AlmaLinux_10.yml
1 change: 1 addition & 0 deletions vars/AlmaLinux_8.yml
1 change: 1 addition & 0 deletions vars/AlmaLinux_9.yml
7 changes: 0 additions & 7 deletions vars/CentOS_10.yml

This file was deleted.

1 change: 1 addition & 0 deletions vars/CentOS_10.yml
7 changes: 0 additions & 7 deletions vars/CentOS_7.yml

This file was deleted.

1 change: 1 addition & 0 deletions vars/CentOS_7.yml
7 changes: 0 additions & 7 deletions vars/CentOS_8.yml

This file was deleted.

1 change: 1 addition & 0 deletions vars/CentOS_8.yml
7 changes: 0 additions & 7 deletions vars/CentOS_9.yml

This file was deleted.

1 change: 1 addition & 0 deletions vars/CentOS_9.yml
1 change: 1 addition & 0 deletions vars/Rocky_10.yml
1 change: 1 addition & 0 deletions vars/Rocky_8.yml
1 change: 1 addition & 0 deletions vars/Rocky_9.yml
30 changes: 24 additions & 6 deletions vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,35 @@
# value in a platform/version specific file in vars/

# Examples of non-distribution specific (generic) internal variables:
__template_foo_config: foo.conf
__template_packages: []
__template_services: []
__aide_foo_config: foo.conf
__aide_packages: []
__aide_services: []
# ansible_facts required by the role
__template_required_facts:
__aide_required_facts:
- distribution
- distribution_major_version
- distribution_version
- os_family
# the subsets of ansible_facts that need to be gathered in case any of the
# facts in required_facts is missing; see the documentation of
# the 'gather_subset' parameter of the 'setup' module
__template_required_facts_subsets: "{{ ['!all', '!min'] +
__template_required_facts }}"
__aide_required_facts_subsets: "{{ ['!all', '!min'] +
__aide_required_facts }}"

# BEGIN - DO NOT EDIT THIS BLOCK - rh distros variables
# Ansible distribution identifiers that the role treats like RHEL
__aide_rh_distros:
- AlmaLinux
- CentOS
- RedHat
- Rocky

# Same as above but includes Fedora
__aide_rh_distros_fedora: "{{ __aide_rh_distros + ['Fedora'] }}"

# Use this in conditionals to check if distro is Red Hat or clone
__aide_is_rh_distro: "{{ ansible_distribution in __aide_rh_distros }}"

# Use this in conditionals to check if distro is Red Hat or clone, or Fedora
__aide_is_rh_distro_fedora: "{{ ansible_distribution in __aide_rh_distros_fedora }}"
# END - DO NOT EDIT THIS BLOCK - rh distros variables
Loading