1
0
Fork 0
forked from infra/ansible

Merge branch 'upstream' into HEAD

* upstream: (551 commits)

Signed-off-by: James Antill <james@and.org>
This commit is contained in:
James Antill 2026-05-02 19:59:24 -04:00
commit ab631bed2e
550 changed files with 13607 additions and 6443 deletions

159
.ai_review/project.md Normal file
View file

@ -0,0 +1,159 @@
## Project Overview
**Purpose:** Ansible automation for the entire Fedora Project infrastructure — managing hundreds of bare-metal hosts, VMs, and OpenShift-deployed applications across production and staging environments.
**Type:** Infrastructure as Code (Ansible)
**Domain:** Linux distribution infrastructure (build systems, package repositories, CI/CD, web services, identity management)
**Key Components:** `roles/` (134 reusable roles), `playbooks/` (groups, hosts, openshift-apps, manual), `inventory/` (host/group vars with constructed plugin)
## Technology Stack
### Versions (current as of 2026-03-05)
- **Ansible** — core automation engine; playbooks target Fedora and RHEL/CentOS hosts
- **yamllint** v1.35.1 — pre-commit hook for YAML validation
- **ansible-lint** — CI linting (skips: `yaml`, `role-name[path]`, `var-naming[no-role-prefix]`, `no-changed-when`, `ignore-errors`)
- **OpenShift 4** (OCP4) — hosts ~60 containerized applications via `openshift-apps/` playbooks
### Target Platforms
- **Fedora** (current cycle: F43 stable, F44 branched, F45 rawhide)
- **RHEL/CentOS** 8+ (EPEL 10, current minor: 10.3)
- **OpenShift 4** cluster (rdu3 datacenter)
### Dev Tools
- **Linting:** yamllint (pre-commit) + ansible-lint (CI)
- **CI:** Forgejo Actions on `quay.io/fedora/fedora:latest` — runs yamllint and ansible-lint on changed files only
- **Control host:** batcave01 (`/srv/web/infra/ansible` public, `/srv/private/ansible` private)
## Resource Organization
### Structure
```
├── main.yml # Master playbook — imports all group/host playbooks
├── playbooks/
│ ├── groups/ # 59 group playbooks (one per service group)
│ ├── hosts/ # 2 host-specific playbooks (FQDN.yml)
│ ├── openshift-apps/ # 60 OCP4 application deployments
│ ├── manual/ # 39 admin-run-only playbooks
│ └── include/ # Shared proxy/virt/cert playbook fragments
├── roles/ # 134 roles
│ ├── base/ # Applied to ALL hosts (packages, SSH, SELinux, nftables)
│ ├── openshift/ # OCP4 primitives (project, object, keytab, route, rollout)
│ └── openshift-apps/ # Per-app roles (templates, files for OCP4 deployments)
├── inventory/
│ ├── inventory/ # Host definitions
│ ├── group_vars/ # 150 group variable files (incl. _stg variants)
│ ├── host_vars/ # Per-host overrides
│ └── zzz-inventory.config # Constructed inventory plugin (dynamic groups by datacenter, distro, vmhost)
├── vars/
│ ├── global.yml # Global vars (paths, SSL config, base packages)
│ ├── all/ # Release cycle vars (Fedora versions, freeze states, EPEL)
│ ├── apps/ # Per-application vars (bodhi, mirrormanager, etc.)
│ ├── Fedora.yml # Distro-specific packages/services
│ └── RedHat.yml / CentOS.yml
├── tasks/ # Reusable task snippets (cloud, postfix, yumrepos, etc.)
├── handlers/ # restart_services.yml
├── library/ # Custom modules (delete_old_oci_images.py, virt_boot, etc.)
├── callback_plugins/ # fedora_messaging_callback.py, logdetail.py
├── files/ # Static files/templates organized by service
└── scripts/ # Admin utility scripts (auth-keys-from-fas, freezelist, etc.)
```
### Module/Role Structure
**Standard role layout:** `tasks/main.yml`, `templates/`, `files/`, `handlers/main.yml`, `meta/main.yml`
**OpenShift app pattern** — the dominant pattern for new services:
1. Playbook in `playbooks/openshift-apps/<app>.yml` targets `os_control[0]:os_control_stg[0]`
2. Uses composable `openshift/*` roles (`project`, `object`, `keytab`, `secret-file`, `imagestream`, `route`, `rollout`)
3. App-specific templates in `roles/openshift-apps/<app>/templates/`
4. Staging vs production controlled by `env` variable and `env_suffix`
**Group playbook pattern** — for traditional VM-based services:
1. Playbook in `playbooks/groups/<group>.yml` with `hosts:` matching inventory group
2. Must include standard `vars_files` triplet (see Review Guidance)
### Critical Resources
- **`vars/all/`** — Fedora release cycle variables. Changed every ~6 months during branching/release. Incorrect values break builds, composes, and Bodhi across the entire infrastructure.
- **`roles/base/tasks/main.yml`** (700+ lines) — Applied to every managed host. Changes here have maximum blast radius.
- **`inventory/group_vars/`** — 150 files controlling per-group behavior. Many have `_stg` counterparts for staging.
- **`main.yml`** — Master playbook importing all groups. Nightly `--check --diff` cron runs all playbooks here.
## Review Guidance
### What Reviewers Must Know
- **All playbooks must be idempotent.** They can be run at any time by the nightly cron. The checked-in state must always be the desired state.
- **Standard vars_files triplet is required** in all group/host playbooks:
```yaml
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "{{ private }}/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
```
Plus `include_vars` for `vars/all/` when release cycle vars are needed.
- **Hardcoded paths are standard** — paths like `/srv/web/infra/ansible/` and `/srv/private/ansible/` are the production layout on batcave01. Don't suggest making them relative or configurable.
- **Use `yml` not `yaml`** for Ansible files (per STYLEGUIDE). The exception is `vars/all/*.yaml` which uses `.yaml` historically.
- **Add `.j2` extension** to all Jinja2 templates.
- **YAML indentation is 2 spaces.** Line length is not enforced.
- **Prefer readable multi-line module args** over single-line `module: name=x arg=y` format.
- **Staging uses `_stg` suffixed group_vars** and `env_suffix` variable (empty string for prod, `.stg` for staging).
- **Tags `packages` and `config`** should be applied to relevant tasks. `build` and `rollout` tags use `never` to prevent accidental execution.
- **OpenShift apps target `os_control[0]:os_control_stg[0]`** — always the first control node. Don't suggest targeting all control nodes.
### Do NOT Flag (Known False Positives)
- `ansible-lint` skip list includes `no-changed-when` and `ignore-errors` — these are intentionally suppressed project-wide
- `yaml` rule category is skipped in ansible-lint — yamllint handles YAML validation separately
- Hardcoded absolute paths in playbooks (e.g., `/srv/web/infra/ansible/...`) — this is the expected deployment layout
- `mock_modules` and `mock_roles` in `.ansible-lint` — used to pass syntax checks without all dependencies
- Octal values forbidden in yamllint — intentional policy to avoid ambiguous YAML parsing
- `when: env == "production"` / `when: env == "staging"` conditional duplication in openshift-apps — standard pattern for different scaling/config per environment
### Common Pitfalls
- **Forgetting to update `vars/all/` during release transitions** — these variables control Fedora version numbers, freeze states, and EPEL branches. Multiple files must be updated together (e.g., branching requires changes to `FedoraBranched.yaml`, `00-FedoraCycleNumber.yaml`, `FedoraBranchedBodhi.yaml`, and `Frozen.yaml`).
- **Not testing with staging first** — staging group_vars (`*_stg`) should be updated before production. Changes that work in staging may still break production due to different scaling or secrets.
- **Breaking idempotency** — a task that makes changes on every run will generate noise in the nightly `--check --diff` report and mask real drift.
- **Wrong file extension for templates** — placing a `.yml` file in `templates/` instead of `.yml.j2` means Jinja2 expressions won't be rendered.
- **ansible-lint file/role misclassification** — the `.ansible-lint` `kinds` section maps `tasks/*.yml` and `vars/*.yml` explicitly. New directories with tasks may need similar mappings.
## Internal & Proprietary
- **`/srv/private/ansible/`** — Private vars (secrets, credentials) stored on batcave01. Referenced as `{{ private }}/vars.yml`. Never committed to this repo.
- **`callback_plugins/fedora_messaging_callback.py`** — Custom Ansible callback that publishes play results to Fedora's AMQP message bus. Don't suggest replacing with standard callback plugins.
- **`callback_plugins/logdetail.py`** — Custom detailed logging callback for the nightly check-diff runs.
- **`library/virt_boot`** / **`library/delete_old_oci_images.py`** — Custom Ansible modules for VM management and OCI image cleanup. Not upstream modules.
- **`scripts/auth-keys-from-fas`** — Fetches SSH authorized keys from Fedora Account System (FAS). Referenced by `auth_keys_from_fas` global variable.
- **Constructed inventory plugin** (`zzz-inventory.config`) — Dynamically creates groups by datacenter (`rdu3`), distro, vmhost, and virtualization role. The `zzz-` prefix ensures it loads last.
---
<!-- MANUAL SECTIONS - DO NOT MODIFY THIS LINE -->
## Architecture & Design Decisions
- **Mostly flat role directory with some nesting**: Most roles live directly under `roles/`, but several use subdirectory namespacing — `openshift/` (OCP4 primitives), `openshift-apps/` (per-app deployments), `awx/`, `openqa/`, `rabbit/`, among others.
- **OpenShift apps via Ansible, not Helm/Kustomize**: OCP4 applications are deployed through Ansible roles that template and apply OpenShift objects. This keeps all infrastructure in one tool and one repo.
- **Staging/production parity through group_vars**: Rather than separate inventories, staging hosts are in the same inventory with `_stg` group_vars files providing overrides. The `env` and `env_suffix` variables control behavior.
- **Release cycle managed through simple YAML vars**: Fedora's complex release lifecycle (rawhide, branched, stable, EOL) is encoded in `vars/all/` as a set of interdependent variables rather than a database or API. This is intentional — the variables are updated manually during each release milestone by the release engineering team.
## Business Logic
- **Fedora release cycle states**: Three main states — unbranched (rawhide only), branched (rawhide + pre-release), and post-release. Controlled by `FedoraBranched`, `FedoraCycleNumber`, `FedoraBranchedBodhi` (preenable/prebeta/postbeta), and freeze flags. These cascade through templates across the entire infrastructure.
- **EPEL minor version lifecycle**: EPEL 10+ has minor versions that move through states: `epel_minor` (built against CentOS), `epel_branched_minor` (branched, built against CentOS snapshot), `epel_z_minor` (built against RHEL). Up to three active minor versions at once.
- **Critical path applications**: forge, pagure, mirrormanager, bodhi, koji, dist-git, and ~20 others require two-reviewer PRs and coordinated downtime scheduling for risky changes.
- **Nightly check-diff**: All playbooks under `playbooks/{groups,hosts}` are run nightly with `--check --diff`. The ideal state is zero changes reported.
## Domain-Specific Context
- **batcave01** — The Ansible control host. All playbooks are run from here via `sudo -i ansible-playbook`.
- **env / env_suffix**`env` is `"production"` or `"staging"`. `env_suffix` is `""` for prod, `".stg"` for staging. Used throughout to construct hostnames, queue names, and paths.
- **FAS (Fedora Account System)** — Identity provider for the Fedora community. SSH keys, group memberships, and permissions come from FAS/IPA.
- **Koji** — Fedora's build system. Build hosts (buildvm, buildhw) are managed here. Koji hub is VM-based (`playbooks/groups/koji-hub.yml` + `roles/koji_hub`), not on OpenShift.
- **Bodhi** — Fedora's update management system. Runs on OpenShift with complex RabbitMQ messaging integration.
- **dist-git / Pagure** — Package source repositories. The lookaside cache and git hosting are managed by separate roles.
- **RabbitMQ / fedora-messaging** — AMQP message bus connecting Fedora services. Certificates managed per-service via `openshift/secret-file` role.
## Special Cases
- **`playbooks/openshift-apps/` uses `gather_facts: false`** — OCP4 playbooks target the control node to run `oc` commands, not the apps themselves. Facts aren't needed and would slow execution.
- **`vars/all/*.yaml` uses `.yaml` extension** despite STYLEGUIDE mandating `.yml` — historical exception, don't "fix" this.
- **`ansible-lint` runs in offline mode** (`offline: true`) — dependencies aren't installed during linting. `mock_modules` and `mock_roles` paper over missing dependencies.
- **Some playbooks are excluded from ansible-lint** (e.g., `copr-db.yml`, `list-vms-per-host.yml`) due to known issues with hardcoded paths or unicode errors.
- **`linux-system-roles.network`** is mocked in ansible-lint — it's an external role not available during CI.

View file

@ -67,3 +67,4 @@ skip_list:
- role-name[path]
- var-naming[no-role-prefix]
- no-changed-when
- ignore-errors

View file

@ -0,0 +1,15 @@
---
name: AI Code Review
on:
pull_request_target:
types: [labeled]
jobs:
ai-review:
runs-on: infra-1
if: forgejo.event.label.name == 'ai-review-please'
uses: quality/workflows/.forgejo/workflows/ai-review.yml@main
with:
pr: ${{ forgejo.event.pull_request.number }}
secrets:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}

View file

@ -0,0 +1,62 @@
---
name: Linter
on:
pull_request:
types: [opened, synchronize]
jobs:
yamllint:
runs-on: infra-1
container:
image: quay.io/fedora/fedora:latest
steps:
- name: Install testing tools
run: |
dnf install -y yamllint nodejs git
- name: Checkout code
uses: https://code.forgejo.org/actions/checkout@v6
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: https://code.forgejo.org/tj-actions/changed-files@v47
- name: Run yamllint
if: steps.changed-files.outputs.any_changed == 'true'
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ "$file" == *.yml || "$file" == *.yaml ]]; then
yamllint "$file"
fi
done
ansible-lint:
runs-on: infra-1
container:
image: quay.io/fedora/fedora:latest
steps:
- name: Install testing tools
run: |
dnf install -y ansible-lint nodejs git ansible
- name: Install ansible collections
run: |
ansible-galaxy collection install community.zabbix
- name: Checkout code
uses: https://code.forgejo.org/actions/checkout@v6
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: https://code.forgejo.org/tj-actions/changed-files@v47
- name: Run ansible-lint
if: steps.changed-files.outputs.any_changed == 'true'
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
ansible-lint "$file"
done

6
.gitignore vendored
View file

@ -1,5 +1,11 @@
*.swp
*.pyc
# Cursor workspace
.cursor
# emacs projectile
.projectile
# ansible-lint directory
.ansible/

View file

@ -1,22 +1,22 @@
---
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
---
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
# - repo: https://github.com/pre-commit/pre-commit-hooks
# rev: v3.2.0
# hooks:
# - id: trailing-whitespace
# - id: end-of-file-fixer
# - id: check-yaml
# - id: check-added-large-files
# - repo: https://github.com/pre-commit/pre-commit-hooks
# rev: v3.2.0
# hooks:
# - id: trailing-whitespace
# - id: end-of-file-fixer
# - id: check-yaml
# - id: check-added-large-files
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
# - repo: https://github.com/ansible/ansible-lint
# rev: v24.12.1
# hooks:
# - id: ansible-lint
# - repo: https://github.com/ansible/ansible-lint
# rev: v24.12.1
# hooks:
# - id: ansible-lint

View file

@ -23,4 +23,8 @@ rules:
# level: warning
truthy:
allowed-values: ['true', 'false', 'yes', 'no']
ignore:
- '*/templates/*'
- '*/openshift-apps/*/templates/*'
...

View file

@ -1,6 +0,0 @@
---
- project:
check:
jobs:
- fi-ansible-lint-diff
- fi-yamllint-diff

108
AGENTS.md Normal file
View file

@ -0,0 +1,108 @@
# AGENTS.md
This file provides guidance to AI coding agents when working with code in this repository.
## Project Overview
Ansible automation for the entire Fedora Project infrastructure. Manages hundreds of bare-metal hosts, VMs, and OpenShift 4 applications across production and staging environments. The control host is **batcave01** (`/srv/web/infra/ansible` public, `/srv/private/ansible` private).
Repository is hosted at https://forge.fedoraproject.org/infra/ansible
## Linting
Run yamllint on changed files:
```sh
yamllint path/to/file.yml
```
Run ansible-lint on changed files:
```sh
ansible-lint path/to/file.yml
```
CI runs both linters on changed files only (Forgejo Actions on `quay.io/fedora/fedora:latest`). The `community.zabbix` collection is installed before ansible-lint runs.
### Linting configuration
- **yamllint** (`.yamllint.yaml`): 2-space indentation (warning level), line-length disabled, octal values forbidden, truthy values restricted to `true/false/yes/no`, templates directories ignored.
- **ansible-lint** (`.ansible-lint`): Runs in offline mode. Skipped rules: `yaml`, `role-name[path]`, `var-naming[no-role-prefix]`, `no-changed-when`, `ignore-errors`. Uses `mock_modules` and `mock_roles` to pass syntax checks without all dependencies.
## Architecture
### Directory structure
- `playbooks/groups/` — One playbook per service group (multi-host). Filename should be descriptive.
- `playbooks/hosts/` — One playbook per unique host. Filename MUST be `FQDN.yml`.
- `playbooks/openshift-apps/` — ~60 OCP4 application deployments.
- `playbooks/manual/` — Admin-only playbooks, never run by cron.
- `playbooks/include/` — Shared playbook fragments (proxy, virt, cert).
- `roles/` — 134 roles. Flat structure with some namespacing (`openshift/`, `openshift-apps/`, `awx/`, `rabbit/`).
- `roles/base/` — Applied to ALL managed hosts. Changes here have maximum blast radius.
- `inventory/` — Host definitions, `group_vars/` (150 files), `host_vars/`, and `zzz-inventory.config` (constructed inventory plugin, loads last due to `zzz-` prefix).
- `vars/all/` — Fedora release cycle variables. Changed every ~6 months during branching/release. Incorrect values break builds across the entire infrastructure.
- `vars/global.yml` — Global vars (paths, SSL, base packages).
- `tasks/` — Reusable task snippets included in playbooks.
- `library/` — Custom Ansible modules (`delete_old_oci_images.py`, `virt_boot`, etc.).
- `callback_plugins/` — Custom callbacks (`fedora_messaging_callback.py`, `logdetail.py`). Don't suggest replacing these.
- `main.yml` — Master playbook importing all group/host playbooks. Used with `-t tag` to run specific tags across all hosts. Nightly `--check --diff` cron runs all playbooks.
### Two main deployment patterns
**OpenShift app pattern** (dominant for new services):
1. Playbook in `playbooks/openshift-apps/<app>.yml` targets `os_control[0]:os_control_stg[0]`
2. Uses composable `openshift/*` roles: `project`, `object`, `keytab`, `secret-file`, `imagestream`, `route`, `rollout`
3. App templates in `roles/openshift-apps/<app>/templates/`
4. Uses `gather_facts: false` (runs `oc` commands on control node, not on apps)
**Group playbook pattern** (traditional VM services):
1. Playbook in `playbooks/groups/<group>.yml` with `hosts:` matching inventory group
2. Must include standard vars_files (see below)
### Staging vs Production
Same inventory, not separate inventories. Staging hosts use `_stg` suffixed group_vars files. Controlled by:
- `env``"production"` or `"staging"`
- `env_suffix``""` for prod, `".stg"` for staging
## Fedora AI-Assisted Contribution Policy
This repository is part of the Fedora Project and subject to the [Fedora AI-Assisted Contributions Policy](https://docs.fedoraproject.org/en-US/council/policy/ai-contribution-policy/). Key requirements:
- **Accountability**: The human contributor is always the author and is fully accountable for the entirety of AI-assisted contributions. All submissions must meet project standards for quality, license compliance, and utility.
- **Transparency**: Use of AI tools MUST be disclosed when the significant part of the contribution is taken from a tool without changes. For git contributions, use an `Assisted-by:` commit message trailer (e.g., `Assisted-by: ChatGPTv5` or `Assisted-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>`).
- **No AI-only judgments**: AI MUST NOT be used as the sole or final arbiter for substantive or subjective judgments on contributions, nor for evaluating a person's standing in the community. Automated objective validation (CI/CD, testing, linting) is permitted.
When generating commit messages, always include the `Assisted-by:` trailer naming the specific AI model and version used.
## Coding Conventions
### Required vars_files in all group/host playbooks
```yaml
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "{{ private }}/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
```
These hardcoded paths are the production layout on batcave01. Do not make them relative or configurable.
### Style rules
- Use `.yml` not `.yaml` for file extensions. Exception: `vars/all/*.yaml` is historical — don't "fix" this.
- Add `.j2` extension to all Jinja2 templates. A `.yml` file in `templates/` without `.j2` won't render Jinja expressions.
- 2-space YAML indentation. Line length is not enforced.
- Prefer readable multi-line module args over single-line `module: name=x arg=y` format.
- Standard tags: `packages` (installs/removes packages), `config` (installs config files).
- `build` and `rollout` tags use `never` to prevent accidental execution.
- All playbooks must be **idempotent** — they can be run at any time by the nightly cron.
### Common pitfalls
- Forgetting to update multiple files in `vars/all/` together during release transitions (e.g., branching requires `FedoraBranched.yaml`, `00-FedoraCycleNumber.yaml`, `FedoraBranchedBodhi.yaml`, and `Frozen.yaml`).
- Breaking idempotency — generates noise in nightly `--check --diff` and masks real drift.
- OpenShift apps must target `os_control[0]:os_control_stg[0]`, not all control nodes.
### Domain terminology
- **batcave01** — Ansible control host
- **FAS/IPA** — Fedora Account System (identity provider)
- **Koji** — Build system (VM-based, not OpenShift)
- **Bodhi** — Update management (runs on OpenShift)
- **dist-git/src.fedoraproject.org** — Package source repositories
- **fedora-messaging/RabbitMQ** — AMQP message bus connecting services

View file

@ -1,19 +1,19 @@
Fedora Infrastructure
=====================
Welcome! This is the Fedora Infrastructure Ansible Pagure project.
Welcome! This is the Fedora Infrastructure Ansible Forge project.
Pull requests and forks can be made against this repository hosted
at https://pagure.io/fedora-infra/ansible
at <https://forge.fedoraproject.org/infra/ansible>
This repository is also mirrored for production runs to
https://infrastructure.fedoraproject.org/infra/ansible/
<https://infrastructure.fedoraproject.org/infra/ansible/>
but this is the working repository where changes are made.
If you would like to help out with Fedora Infrastructure, see:
* https://docs.fedoraproject.org/en-US/infra/gettingstarted/
* https://docs.fedoraproject.org/en-US/infra/apprentice/
* <https://docs.fedoraproject.org/en-US/infra/gettingstarted/>
* <https://docs.fedoraproject.org/en-US/infra/apprentice/>
Ansible repository/structure
----------------------------
@ -100,19 +100,19 @@ Contributing and Licensing
Contributions to this repository are subject to the Fedora Project
Contributor Agreement. If no license is specified, the MIT license is used, otherwise
the contribution is under the specified acceptable Fedora License.
See https://docs.fedoraproject.org/en-US/legal/fpca/
See <https://docs.fedoraproject.org/en-US/legal/fpca/>
for more information.
Contributing Pull Requests
--------------------------
If found a way to improve this repository or fix an issue found in our
infrastructure tracker (see https://forge.fedoraproject.org/infra/tickets)
infrastructure tracker (see <https://forge.fedoraproject.org/infra/tickets>)
open a pull-request.
You either should have capability to run the playbooks after they have been reviewed,
and merged or find the person responsible and work with them to make sure the changes
will be aplied afterwards.
will be aplied afterwards.
We are currently working on a simple to use list of Point Of Contanct people for the applications
here, untill it is done, you can, look at people that recently edited the ansible files,
@ -120,7 +120,7 @@ or if you belong to sysadmin group, view the /etc/ansible_utils/rbac.yaml locate
where you can see the groups of people that have capabilities to run the relevant playbooks.
For example, to upgrade Release Monitoring, you need to run playbook openshift-apps/release-monitoring.yaml.
People in sysadmin-releasemonitoring have that capability, and you cand find the members in https://accounts.fedoraproject.org/group/sysadmin-releasemonitoring/
People in sysadmin-releasemonitoring have that capability, and you cand find the members in <https://accounts.fedoraproject.org/group/sysadmin-releasemonitoring/>
If the application in question is not on the critical path it should be sufficient,
if person responsible for the application reviews the PR.
@ -131,13 +131,12 @@ at least two different people should review the PR.
If there is any risk at all, that the application of the changes would induce downtime,
work closely with other to ensure that the downtime is properly scheduled:
- there is an issue in https://forge.fedoraproject.org/infra/tickets specifying the downtime
- there is an email sent to the devel-list
- https://status.fedoraproject.org is updated (see https://docs.fedoraproject.org/en-US/infra/sysadmin_guide/status-fedora/)
* there is an issue in <https://forge.fedoraproject.org/infra/tickets> specifying the downtime
* there is an email sent to the devel-list
* <https://status.fedoraproject.org> is updated (see <https://docs.fedoraproject.org/en-US/infra/sysadmin_guide/status-fedora/>)
Applications on critical path: pagure, mirrormanager, toddlers, bodhi, noggin, mdapi, rpmautospec, pagure-dist-git, mirror_from_pagure, fedora-messaging, dist-git, PDC/FPDC, FMN, sigul
Applications on critical path: forge, pagure, mirrormanager, toddlers, bodhi, noggin, mdapi, rpmautospec, pagure-dist-git, mirror_from_pagure, fedora-messaging, dist-git, PDC/FPDC, FMN, sigul
robosignatory, tag2distrepo, ci-resultsdb-listener, stylo, mirrorlist
resultsdb, Nagios, koschei, wiki / mediawiki, wiki / moin, waiverdb,
greenwave, ODCS, Mailman3 / HK, mailman 2, OSBS, pungi, koji, MBS,
resultsdb, Nagios, koschei, wiki / mediawiki, wiki / moin, waiverdb,
greenwave, ODCS, Mailman3 / HK, mailman 2, OSBS, pungi, koji, MBS,
IPA, rabbitmq, geoip,ipsilon

View file

@ -8,7 +8,7 @@
RSYNC='/usr/bin/rsync'
RS_OPT="-avSHP --numeric-ids"
RS_DEADLY="--delete --delete-excluded --delete-delay --delay-updates"
ALT_EXCLUDES=""
ALT_EXCLUDES="--exclude 44_Beta*" # 2026-04-16 - tmp. running out of space
EPL_EXCLUDES=""
FED_EXCLUDES=""

View file

@ -39,7 +39,7 @@ RewriteRule ^/released/i/m/imapsync https://pagure.io/releases/imapsync [R=301]
RewriteRule ^/released/imapsync https://pagure.io/releases/imapsync [R=301]
RewriteRule ^/fedora-infrastructure/report https://forge.fedoraproject.org/infra/tickets [R=301]
RewriteRule ^/fedora-infrastructure/ticket/(.*) https://forge.fedoraproject.org/infra/tickets/$1 [R=301]
RewriteRule ^/fedora-infrastructure/ticket/(.*) https://forge.fedoraproject.org/infra/tickets/issues/$1 [R=301]
RewriteRule ^/fedora-infrastructure https://forge.fedoraproject.org/infra/tickets [R=301]
RewriteRule ^/fesco/report https://pagure.io/fesco/issues [R=301]

1484
files/scripts/ansilog-playbook.py Executable file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,94 @@
#!/bin/bash
# vim: ts=4:sw=4:expandtab:tw=100
# This script manages a set of backup files which are prefixed with ISO dates (YYYY-MM-DD).
# - As new files come in, we want to delete the old ones.
# - RETENTION_DAYS decides how old is "old".
# - But if no new files come in (e.g. the backup process is broken), we don't want to
# end up deleting _all_ the files, just because they're old.
# - MIN_KEEP decides how many files to keep.
#
# Usage: ./retain.sh --dry-run <directory>
set -euo pipefail
DRY_RUN=false
DIR=""
# Parse arguments (extremely verbosely to satisfy the LLM reviewing this PR)
while [[ $# -gt 0 ]]; do
case "$1" in
--dry-run)
DRY_RUN=true
shift
;;
-*)
echo "Error: Unknown flag '$1'" >&2
exit 1
;;
*)
if [[ -z "$DIR" ]]; then
DIR="$1"
shift
else
echo "Error: Multiple positional arguments provided. Expected only DIR." >&2
exit 1
fi
;;
esac
done
# Validate required argument
if [[ -z "$DIR" ]]; then
echo "Error: DIR argument is required." >&2
echo "Usage: $0 [--dry-run] DIR" >&2
exit 1
fi
RETENTION_DAYS="${RETENTION_DAYS:-31}"
MIN_KEEP="${MIN_KEEP:-31}"
CUTOFF=$(date -d "${RETENTION_DAYS} days ago" +%Y-%m-%d)
# Collect all dated files (basename matches YYYY-MM-DD-*)
mapfile -t DATED_FILES < <(
find "$DIR" -maxdepth 1 -type f -name "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-*" \
| sort -r # sort descending by filename (date first)
)
total=${#DATED_FILES[@]}
$DRY_RUN && echo "*** DRY RUN — no files will be deleted ***"
echo ""
if [[ $total -eq 0 ]]; then
echo "No dated files found in '$DIR'."
exit 0
fi
deleted=0
skipped_retention=0
for i in "${!DATED_FILES[@]}"; do
filepath="${DATED_FILES[$i]}"
filename=$(basename "$filepath")
file_date="${filename:0:10}" # extract YYYY-MM-DD
# Always keep the MIN_KEEP most-recent files (indices 0..MIN_KEEP-1)
if [[ $i -lt $MIN_KEEP ]]; then
echo "KEEP (newest ${MIN_KEEP}): $filename"
continue
fi
# Delete if the file's date is before the cutoff
if [[ "$file_date" < "$CUTOFF" ]]; then
echo "DELETE (expired): $filename"
$DRY_RUN || rm -- "$filepath"
deleted="$((deleted + 1))"
else
echo "KEEP (within retention): $filename"
skipped_retention="$((skipped_retention + 1))"
fi
done
echo ""
echo "Deleted: $deleted files (dry-run=$DRY_RUN). Kept by min-count: $(( total < MIN_KEEP ? total : MIN_KEEP )). Kept by date window: $skipped_retention."

View file

@ -13,10 +13,10 @@ import sys
import argparse
import fnmatch
import re
import shutil
import subprocess
import time
from functools import total_ordering
# Use utf8 prefixes in diff, these need to be a "normal" width 1 character
conf_utf8 = True
@ -194,9 +194,9 @@ def natcmp(x, y):
https://en.wikipedia.org/wiki/Natural_sort_order
Aka. vercmp() """
def _cmp_xy_mix(): # One is a digit, the other isn't.
def _cmp_xy_mix(val): # One is a digit, the other isn't.
if inum is not None: # 0/1 vs. x/.
return 1
return val
if x[i] > y[i]:
return 1
else:
@ -206,9 +206,9 @@ def natcmp(x, y):
check_zeros = False
for i in range(min(len(x), len(y))):
if x[i] in "0123456789" and y[i] not in "0123456789":
return _cmp_xy_mix()
return _cmp_xy_mix(1)
if x[i] not in "0123456789" and y[i] in "0123456789":
return _cmp_xy_mix()
return _cmp_xy_mix(-1)
if x[i] in "0123456789": # Both are digits...
if inum is None:
@ -264,6 +264,7 @@ def natcmp(x, y):
return inum
@total_ordering
class NatCmp():
__slots__ = ['s',]
def __init__(self, s):
@ -373,10 +374,6 @@ def _ui_date(d1, align=None, prev=None):
return _ui_t_align(d1.date, align)
if prev is not None and d1.date == prev:
return _ui_t_align(" \" ", align)
if False and d1.date == backup_today: # Better, or no?
return _ui_t_align("today", align)
if False and d1.date == backup_yesterday:
return _ui_t_align("yesterday", align)
# YYYY-MM-DD
# 1234567890
if prev is None:
@ -472,6 +469,7 @@ def _wild_eq(s1, s2):
_max_len_osnm = 0 # osname_small
_max_len_osvr = 0 # osvers ... upto the first '.'
@total_ordering
class Host():
""" Class for holding the Host data from a line in the files. """
@ -693,7 +691,7 @@ def line2data(line):
return Host(locals())
def lines2datas(lines):
return (line2data(line) for line in lines)
return list(sorted(line2data(line) for line in lines))
# Filter datas using name as a filename wildcard match.
def filter_name_datas(datas, names):
@ -804,7 +802,7 @@ def _maybe_dynamic_uptime(data):
mtime = os.path.getmtime(fname)
since = int(time.time()) - int(mtime)
data = list(sorted(data))
data = data.copy()
for d1 in data:
d1.uptime += since
return data
@ -949,12 +947,12 @@ def _diffstats(data1, data2):
d1 = data1[0]
d2 = data2[0]
if d1.name < d2.name:
if natcmp(d1.name, d2.name) < 0:
udel -= d1.rpms
data1.pop(0)
continue
if d1.name > d2.name:
if natcmp(d1.name, d2.name) > 0:
uadd += d2.rpms
data2.pop(0)
boot += 1
@ -1152,10 +1150,6 @@ def _cmd_update(args):
cmd = "update-daily" # This does the sorting etc.
elif fname_today is None:
cmd = "update-daily"
elif False: # -fast and -flush are the same now, so who cares.
mtime = os.path.getmtime(fname)
if (int(time.time()) - mtime) > conf_dur_flush_cache:
cmd = "update-fast"
if cmd == "update-host":
os.chdir("/srv/web/infra/ansible/playbooks")
@ -1213,7 +1207,7 @@ def _hist_lengths(hosts=None):
# Whatever, it's less memory than holding all history at once if you want
# to enable it..
for backup in reversed(backups):
data = list(sorted(lines2datas(bfname2lines(backup))))
data = lines2datas(bfname2lines(backup))
data = list(filter_name_datas(data, hosts))
updates = _ui_int(sum(d.rpms for d in data))
hl = max(hl, len(_ui_int(len(data))))
@ -1242,7 +1236,7 @@ def _cmd_history(args):
_ui_t_title("Boots", rl))
for backup in reversed(backups):
data = list(sorted(lines2datas(bfname2lines(backup))))
data = lines2datas(bfname2lines(backup))
data = list(filter_name_datas(data, args.hosts))
data = list(filter_osname_datas(data, args.osnames))
updates = sum(d.rpms for d in last_data)
@ -1511,10 +1505,6 @@ def _cmd_info(args):
if args.host:
# print("JDBG:", args.host)
hosts = [args.host]
if False and args.all:
for b in backups:
print("History:", b)
_print_info(hosts, lines2datas(bfname2lines(b)))
if args.hists:
hists = args.hists[:]
for hist in hists:
@ -1641,7 +1631,6 @@ def _cmd_created(args):
dur += 60*60*24 # Broken, but mostly works. Do backups daily, or mtime.
data = lines2datas(bfname2lines(backup))
data = list(sorted(data))
# If a machine is missing from an older backup, it's marked as being
# (re)installed ... even though it might appear in an even older
@ -1686,12 +1675,12 @@ def _diff_hosts(data1, data2, show_both=False, show_utf8=True, skip_eq=False):
d1 = data1[0]
d2 = data2[0]
if d1.name < d2.name:
if natcmp(d1.name, d2.name) < 0:
_print_line('-', d1, prev=pdata)
pdata = data1.pop(0)
continue
if d1.name > d2.name:
if natcmp(d1.name, d2.name) > 0:
_print_line('+', d2, prev=pdata)
pdata = data2.pop(0)
continue
@ -1797,7 +1786,6 @@ def _cmd_host(args):
# Would be a lot faster if we could exit early here, but it's difficult
for backup in hbackups:
data = filter_name_datas(lines2datas(bfname2lines(backup)), hosts)
data = list(sorted(data))
data = list(filter_osname_datas(data, args.osnames))
_max_update(data)
_max_update_correct(' ')
@ -1811,7 +1799,6 @@ def _cmd_host(args):
thostnum = 0
for backup in hbackups:
data = filter_name_datas(lines2datas(bfname2lines(backup)), hosts)
data = list(sorted(data))
data = list(filter_osname_datas(data, args.osnames))
if done and skipped_num < 1:
@ -1861,9 +1848,9 @@ def _cmd_host(args):
def _cmdline_arg_ansi(oval):
val = oval.lower()
if val in ("yes", "on", "1", "always"):
if val in ("true", "y", "yes", "on", "1", "always"):
return True
if val in ("no", "off", "0", "never"):
if val in ("false", "n", "no", "off", "0", "never"):
return False
if val in ("automatic", "?", "tty", "auto"):
return None

View file

@ -289,6 +289,9 @@ buildhw-x86-01.rdu3.fedoraproject.org
buildhw-x86-02.rdu3.fedoraproject.org
buildhw-x86-03.rdu3.fedoraproject.org
buildhw-x86-04.rdu3.fedoraproject.org
buildhw-x86-05.rdu3.fedoraproject.org
buildhw-x86-06.rdu3.fedoraproject.org
buildhw-x86-07.rdu3.fedoraproject.org
buildhw-x86-08.rdu3.fedoraproject.org
buildhw-x86-09.rdu3.fedoraproject.org
buildhw-x86-10.rdu3.fedoraproject.org
@ -312,6 +315,9 @@ buildhw-x86-02.rdu3.fedoraproject.org
buildhw-x86-03.rdu3.fedoraproject.org
buildhw-x86-04.rdu3.fedoraproject.org
# old iad2 hw
buildhw-x86-05.rdu3.fedoraproject.org
buildhw-x86-06.rdu3.fedoraproject.org
buildhw-x86-07.rdu3.fedoraproject.org
buildhw-x86-08.rdu3.fedoraproject.org
buildhw-x86-09.rdu3.fedoraproject.org
buildhw-x86-10.rdu3.fedoraproject.org
@ -396,6 +402,10 @@ buildvm-ppc64le-32.rdu3.fedoraproject.org
[bkernel]
buildhw-x86-01.rdu3.fedoraproject.org
[secureboot]
buildhw-x86-02.rdu3.fedoraproject.org
buildhw-a64-02.rdu3.fedoraproject.org
# These hosts get the runroot plugin installed.
# They should be added to their own 'compose' channel in the koji db
# .. and they should not appear in the default channel for builds.

View file

@ -33,8 +33,11 @@ copr-keygen.aws.fedoraproject.org
copr-keygen-dev.aws.fedoraproject.org
#copr-be-dev.cloud.fedoraproject.org
copr-dist-git-dev.fedorainfracloud.org
rpmeta.stg.fedoraproject.org
rpmeta.fedoraproject.org
f42-test.fedorainfracloud.org
f43-test.fedorainfracloud.org
f44-test.fedorainfracloud.org
rawhide-test.fedorainfracloud.org
el9-test.fedorainfracloud.org
el10-test.fedorainfracloud.org

View file

@ -3,7 +3,7 @@
# BEGIN: Ansible roles_path variables
#
# Background/reference about external repos pulled in:
# https://forge.fedoraproject.org/infra/tickets/5476
# https://forge.fedoraproject.org/infra/tickets/issues/5476
#
# IPA settings
additional_host_keytabs: []
@ -79,9 +79,10 @@ communishift_projects:
communishift-log-detective:
name: communishift-log-detective
do_not_delete: true # Marked do not delete 2024-10-21 - dkirwan
memory_limits: 6Gi
memory_limits: 7Gi
memory_requests: 4Gi
storage_requests: 10Gi
pods: 6
communishift-mattdm:
name: communishift-mattdm
communishift-metrics:
@ -99,9 +100,14 @@ communishift_projects:
name: communishift-planet
communishift-standupbot:
name: communishift-standupbot
do_not_delete: true # Marked do not delete 2026-05-01 - dkirwan
communishift-weekly-bootc:
do_not_delete: true # Marked do not delete 2024-11-26. Needed until end of bootc initative. - dkirwan
name: communishift-weekly-bootc
communishift-draft-share:
name: communishift-draft-share
communishift-happinesspackets:
name: communishift-happinesspackets
# true or false if we are or are not a copr build virthost.
# Default to false
copr_build_virthost: false
@ -339,6 +345,7 @@ zabbix_httpapi_use_ssl: true
zabbix_httpapi_validate_certs: false
zabbix_url_path: "" # If Zabbix WebUI runs on non-default (zabbix) path ,e.g. http://<FQDN>/zabbixeu
# Zabbix agent vars
zabbix_agentd: /etc/zabbix_agentd.conf # Needed for zabbix_sender in other roles
zabbix_host: "zabbix01{{ env_suffix }}.{{ datacenter }}.fedoraproject.org"
zabbix_tls_psk_identity: "Fedora"
zabbix_tls_psk: "{{ zabbix_tls_prod_psk }}" # in ansible-private repo
@ -347,6 +354,8 @@ zabbix_tls_psk: "{{ zabbix_tls_prod_psk }}" # in ansible-private repo
zabbix_inventory:
# Env is not a valid key, so use this field for environment
deployment_status: production
zabbix_base_hostgroups:
- All servers
notes: |
Unspecified.

View file

@ -14,14 +14,6 @@ nft_block_rules:
# This host is externally reachable
#
external: true
#
# Set this to get fasclient cron to make the aliases file
#
fas_aliases: true
#
# Set this to get fasjson-client cron to make the aliases file
#
fasjson_aliases: false
fasjson_url: https://fasjson.fedoraproject.org/
host_group: bastion
ipa_client_shell_groups:

View file

@ -21,10 +21,6 @@ custom_rules: ['-A INPUT -s 192.168.100/24 -j REJECT --reject-with icmp-host-pro
nft_block_rules:
- 'add rule {{nft_table_filter}} INPUT ip saddr 192.168.100.0/24 counter reject with icmp type host-prohibited'
- 'add rule {{nft_table_filter}} INPUT ip saddr 10.0.0.0/8 udp dport 123 counter accept'
#
# Set this to get fasjson-client cron to make the aliases file
#
fasjson_aliases: true
ipa_client_shell_groups: "{{ (bastion_ipa_client_shell_groups + batcave_ipa_client_shell_groups) | sort | unique }}"
#
# allow a bunch of sysadmin groups here so they can access internal stuff

View file

@ -24,6 +24,7 @@ ipa_client_shell_groups:
- sysadmin-datanommer
- sysadmin-debuginfod
- sysadmin-epel
- sysadmin-gpu
- sysadmin-koschei
- sysadmin-libravatar
- sysadmin-messaging

View file

@ -18,7 +18,7 @@ koji_topurl: "https://kojipkgs.stg.fedoraproject.org/"
# Groups and individual hosts should ovveride them with specific info.
koji_weburl: "https://koji.stg.fedoraproject.org/koji"
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/43/Server/aarch64/os/
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/44/Server/aarch64/os/
ks_url: https://infrastructure.fedoraproject.org/repo/rhel/ks/kvm-fedora
lvm_size: 140000
max_cpu: "{{ num_cpus }}"

View file

@ -11,3 +11,4 @@ zabbix_server: "{{ zabbix_hostname }}"
zabbix_auth_key: "{{ zabbix_apikey }}" # ansible-private repo
zabbix_macros:
NET.IF.IFNAME.NOT_MATCHES: "^vnet.*"
postfix_group: vpn

View file

@ -24,7 +24,7 @@ builders:
# put here the number -1 of the actuall reserved instances
aws_reserved:
aarch64: [50, 20, 33]
x86_64: [58, 20, 52]
x86_64: [70, 20, 52]
aws_reserved_powerful:
x86_64: [1, 1, 1]
aws_powerful:
@ -33,11 +33,6 @@ builders:
aws_spot:
aarch64: [30, 4, 1]
x86_64: [70, 8, 16]
ppc64le_hypervisor_01:
ppc64le: [0, 4, 15]
# There's the ppc64le-test machine, so keep 2 builders less.
ppc64le_hypervisor_02:
ppc64le: [0, 4, 13]
p09_hypervisor_01:
ppc64le: [15, 5, 15]
p09_hypervisor_02:
@ -46,6 +41,14 @@ builders:
ppc64le: [15, 5, 15]
p09_hypervisor_04:
ppc64le: [15, 5, 15]
hp_p09_hypervisor_01:
ppc64le: [1, 1, 1]
hp_p09_hypervisor_02:
ppc64le: [1, 1, 1]
hp_p09_hypervisor_03:
ppc64le: [1, 1, 1]
hp_p09_hypervisor_04:
ppc64le: [1, 1, 1]
x86_hypervisor_01:
x86_64: [20, 4, 20]
x86_hypervisor_02:
@ -53,42 +56,42 @@ builders:
x86_hypervisor_03:
x86_64: [20, 4, 20]
x86_hypervisor_04:
x86_64: [20, 4, 20]
x86_64: [0, 4, 20]
ibm_cloud_us_east_hp:
s390x: [2, 1, 0]
ibm_cloud_br_sao_1:
s390x: [3, 1, 1]
s390x: [5, 5, 1]
ibm_cloud_br_sao_2:
s390x: [3, 1, 1]
s390x: [5, 5, 1]
ibm_cloud_br_sao_3:
s390x: [3, 1, 1]
s390x: [5, 5, 1]
ibm_cloud_eu_es_1:
s390x: [3, 1, 1]
s390x: [5, 5, 1]
ibm_cloud_eu_es_2:
s390x: [3, 1, 1]
s390x: [5, 5, 1]
ibm_cloud_eu_es_3:
s390x: [3, 1, 1]
s390x: [5, 5, 1]
cloud_instance_types:
ibm_cloud:
s390x: mz2-2x16
s390x: bz2-2x8
s390x_hp: bz2-16x64
ibm_cloud_regions:
eu_es:
name: eu-es
name_humans: Madrid, Spain
ssh_key: r050-cbd10ece-a28f-45c8-bc3a-15ecb9ff66d5
ssh_key: r050-4e396a17-294c-4197-9c56-e126185025a1
vpc: r050-190b8bac-3bae-47cf-9be7-ac70fc54ccb9
security_group: r050-cfc3db07-8cde-4807-9756-db91b242092a
images: "{{ copr_builder_images.ibm_cloud.eu_es }}"
br_sao:
name: br-sao
name_humans: Sao Paulo, Brazil
ssh_key: r042-4fb65a23-e7bd-440f-8d71-ff57b83a4152
ssh_key: r042-b30ff308-ef4f-43bf-bdd6-e16f1cc614cd
vpc: r042-c902f12d-556f-4334-95cb-d181ebb3d8ba
security_group: r042-22ef3881-fa20-4caa-9873-c8dc41c5dcb7
images: "{{ copr_builder_images.ibm_cloud.br_sao }}"
@ -208,7 +211,7 @@ aws_cloudfront_distribution: E2PUZIRCXCOXTG
nrpe_client_uid: 500
rsnapshot_push:
server_host: storinator01.rdu-cc.fedoraproject.org
server_host: storinator01.fedoraproject.org
backup_dir: /srv/nfs/copr-be
cases:
copr-be-copr-user:
@ -221,7 +224,7 @@ rsnapshot_push:
deployment_type: prod
pulp_content_url: "https://console.redhat.com/api/pulp-content/public-copr/"
pulp_content_url: "https://packages.redhat.com/api/pulp-content/public-copr/"
zabbix_host: 38.145.32.41
zabbix_macros:

View file

@ -33,10 +33,6 @@ builders:
aws_spot:
aarch64: [3, 3, 1]
x86_64: [0, 0, 1]
ppc64le_hypervisor_01:
ppc64le: [0, 1, 1]
ppc64le_hypervisor_02:
ppc64le: [0, 1, 1]
p09_hypervisor_01:
ppc64le: [1, 1, 1]
p09_hypervisor_02:
@ -45,6 +41,14 @@ builders:
ppc64le: [1, 1, 1]
p09_hypervisor_04:
ppc64le: [1, 1, 1]
hp_p09_hypervisor_01:
ppc64le: [1, 1, 1]
hp_p09_hypervisor_02:
ppc64le: [1, 1, 1]
hp_p09_hypervisor_03:
ppc64le: [1, 1, 1]
hp_p09_hypervisor_04:
ppc64le: [1, 1, 1]
x86_hypervisor_01:
x86_64: [2, 1, 1]
x86_hypervisor_02:
@ -52,7 +56,7 @@ builders:
x86_hypervisor_03:
x86_64: [2, 1, 1]
x86_hypervisor_04:
x86_64: [2, 1, 1]
x86_64: [0, 1, 1]
ibm_cloud_us_east_hp:
s390x: [1, 1, 0]
@ -60,34 +64,34 @@ builders:
ibm_cloud_br_sao_1:
s390x: [1, 1, 0]
ibm_cloud_br_sao_2:
s390x: [1, 1, 0]
s390x: [0, 0, 0]
ibm_cloud_br_sao_3:
s390x: [1, 1, 0]
s390x: [0, 0, 0]
ibm_cloud_eu_es_1:
s390x: [1, 1, 0]
s390x: [0, 0, 0]
ibm_cloud_eu_es_2:
s390x: [1, 1, 0]
s390x: [0, 0, 0]
ibm_cloud_eu_es_3:
s390x: [1, 1, 0]
s390x: [0, 0, 0]
cloud_instance_types:
ibm_cloud:
s390x: mz2-2x16
s390x: bz2-2x8
s390x_hp: bz2-16x64
ibm_cloud_regions:
eu_es:
name: eu-es
name_humans: Madrid, Spain
ssh_key: r050-cbd10ece-a28f-45c8-bc3a-15ecb9ff66d5
ssh_key: r050-ea3b598c-39ca-4963-b8ef-c9d6ac146fad
vpc: r050-190b8bac-3bae-47cf-9be7-ac70fc54ccb9
security_group: r050-cfc3db07-8cde-4807-9756-db91b242092a
images: "{{ copr_builder_images.ibm_cloud.eu_es }}"
br_sao:
name: br-sao
name_humans: Sao Paulo, Brazil
ssh_key: r042-4fb65a23-e7bd-440f-8d71-ff57b83a4152
ssh_key: r042-3ec7f0e1-3eb3-4f55-a922-915c85da09c2
vpc: r042-c902f12d-556f-4334-95cb-d181ebb3d8ba
security_group: r042-22ef3881-fa20-4caa-9873-c8dc41c5dcb7
images: "{{ copr_builder_images.ibm_cloud.br_sao }}"
@ -184,6 +188,14 @@ aws_cloudfront_distribution: EX55ITR8LVMOH
nrpe_client_uid: 500
pulp_content_url: "https://console.redhat.com/api/pulp-content/public-copr-stage/"
pulp_content_url: "https://packages.redhat.com/api/pulp-content/public-copr-stage/"
zabbix_host: 38.145.32.42
zabbix_server: zabbix.stg.fedoraproject.org
zabbix_auth_key: "{{ zabbix_stg_apikey }}" # in ansible-private repo
zabbix_tls_psk: "{{ zabbix_tls_stg_psk }}" # in ansible-private repo
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
# Env is not a valid key, so use this field for environment
deployment_status: staging

View file

@ -19,6 +19,8 @@ primary_auth_source: ipa
nbde: true
nbde_device: /dev/md2
nbde_device2: /dev/md3
nbde_device3: /dev/md4
nbde_client_bindings:
- device: "{{ nbde_device }}"
encryption_password: "{{ nbde_password }}"
@ -27,6 +29,20 @@ nbde_client_bindings:
servers:
- http://tang01.rdu3.fedoraproject.org
- http://tang02.rdu3.fedoraproject.org
- device: "{{ nbde_device2 }}"
encryption_password: "{{ nbde_password }}"
password_temporary: no
threshold: 1
servers:
- http://tang01.rdu3.fedoraproject.org
- http://tang02.rdu3.fedoraproject.org
- device: "{{ nbde_device3 }}"
encryption_password: "{{ nbde_password }}"
password_temporary: no
threshold: 1
servers:
- http://tang01.rdu3.fedoraproject.org
- http://tang02.rdu3.fedoraproject.org
libvirt_host: "{{ inventory_hostname }}"

View file

@ -0,0 +1,28 @@
---
copr_machine_type: rpmeta
copr_hostbase: copr-rpmeta
rpmeta_hostname: rpmeta.fedoraproject.org
rpmeta_port: 44882
rpmeta_model_name: xgboost
rpmeta_hf_repo_base: https://huggingface.co/fedora-copr/rpmeta/resolve
rpmeta_hf_model_ref: v2025.12.24
letsencrypt:
certificates:
rpmeta.fedoraproject.org:
challenge_dir: /var/www/html
domains:
- rpmeta.fedoraproject.org
mail: copr-devel@lists.fedorahosted.org
predefined_deploy_script: nginx
tcp_ports: [22, 80, 443,
# node_exporter/prometheus
9100,
]
services_disabled: false
notes: |
Production instance for RPMeta build duration prediction service.

View file

@ -0,0 +1,28 @@
---
copr_machine_type: rpmeta
copr_hostbase: copr-rpmeta-dev
rpmeta_hostname: rpmeta.stg.fedoraproject.org
rpmeta_port: 44882
rpmeta_model_name: xgboost
rpmeta_hf_repo_base: https://huggingface.co/fedora-copr/rpmeta/resolve
rpmeta_hf_model_ref: v2025.12.24
letsencrypt:
certificates:
rpmeta.stg.fedoraproject.org:
challenge_dir: /var/www/html
domains:
- rpmeta.stg.fedoraproject.org
mail: copr-devel@lists.fedorahosted.org
predefined_deploy_script: nginx
tcp_ports: [22, 80, 443,
# node_exporter/prometheus
9100,
]
services_disabled: false
notes: |
Staging instance for RPMeta build duration prediction service.

View file

@ -106,6 +106,10 @@ dl_tier1:
- zaphod.gtlib.gatech.edu # 128.61.111.12
- sv.mirrors.kernel.org
- dfw.mirrors.kernel.org
- mirror.raiolanetworks.com # 91.132.103.246 / 2a12:d282:102:f6::1
- ftp-osl.osuosl.org # 140.211.166.134 / 2605:bc80:3010::134
- ftp-chi.osuosl.org # 64.50.236.52 / 2600:3402:200:227::2
- ftp-nyc.osuosl.org # 64.50.233.100
ipa_host_group: download
ipa_host_group_desc: Download servers
nagios_Check_Services:

15
inventory/group_vars/gpu Normal file
View file

@ -0,0 +1,15 @@
---
primary_auth_source: ipa
freezes: false
ipa_client_shell_groups:
- sysadmin-gpu
- forge-cle-members
- forge-ai-ml-members
ipa_client_sudo_groups:
- sysadmin-gpu
ipa_host_group: gpu
ipa_host_group_desc: gpu servers
notes: |
gpu machine for testing fedora with gpus

View file

@ -11,8 +11,8 @@ ipa_host_group_desc: riscv Koji Hub hosts
koji_hub: "riscv-koji.fedoraproject.org/kojihub"
koji_root: "riscv-koji.fedoraproject.org/koji"
lvm_size: 100000
mem_size: 32768
max_mem_size: 65536
mem_size: 45056
max_mem_size: 90112
nfs_mount_opts: "rw,hard,bg,intr,noatime,nodev,nosuid,sec=sys,nfsvers=4"
num_cpus: 8
primary_auth_source: ipa

View file

@ -48,3 +48,4 @@ wsgi_procs: 20
wsgi_threads: 5
zabbix_macros:
'VFS.FS.FSTYPE.MATCHES': '^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs|nfs)$'
postfix_group: pkgs

View file

@ -43,3 +43,4 @@ wsgi_procs: 4
wsgi_threads: 4
zabbix_macros:
'VFS.FS.FSTYPE.MATCHES': '^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs|nfs)$'
postfix_group: pkgs

View file

@ -75,8 +75,6 @@ ocp_nodes_stg:
- worker01.ocp.stg.rdu3.fedoraproject.org
- worker02.ocp.stg.rdu3.fedoraproject.org
- worker03.ocp.stg.rdu3.fedoraproject.org
- worker04.ocp.stg.rdu3.fedoraproject.org
- worker05.ocp.stg.rdu3.fedoraproject.org
ocp_masters_rdu3_stg:
- bootstrap.ocp.stg.rdu3.fedoraproject.org
ocp_nodes_rdu3_stg:

View file

@ -38,6 +38,8 @@ tcp_ports: [
# HTTP API
#15672,
]
zabbix_macros:
'RABBITMQ.MESSAGES.MAX.HIGH:"fmn"': 4000
zabbix_templates:
- group: "rabbitmq" # Ansible group
template: "RabbitMQ node by Zabbix agent" # Template name in roles/zabbix/zabbix_templates/files/templatename.json

View file

@ -18,6 +18,7 @@ nrpe_procs_warn: 1800
primary_auth_source: ipa
tcp_ports: [80, 443]
vpn: true
host_group: retrace
notes: |
Provide a web interface and backend for ABRT Analytics and Retrace Server.

View file

@ -26,6 +26,6 @@ tcp_ports: [25]
vpn: true
zabbix_macros:
# We don't care *too much* about mail here
POSTFIX.QUEUE.WARN: 100
POSTFIX.QUEUE.AVG: 150
POSTFIX.QUEUE.CRIT: 200
POSTFIX.QUEUE.WARN: 200
POSTFIX.QUEUE.AVG: 300
POSTFIX.QUEUE.CRIT: 400

View file

@ -14,7 +14,7 @@ lvm_size: 30000
max_mem_size: 8192
mem_size: 8192
nfs_mount_opts: "rw,hard,bg,intr,noatime,nodev,nosuid,sec=sys,nfsvers=3"
num_cpus: 4
num_cpus: 16
primary_auth_source: ipa
tcp_ports: [80]
# mediawiki variables

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.134
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.28
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.99
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.163.40
br0_ipv4_gw: 10.16.163.254
br0_ipv4_nm: 24
@ -62,3 +62,13 @@ network_connections:
nrpe_procs_crit: 1400
nrpe_procs_warn: 1200
weblate_backup_topdir: /fedora_backups/misc/weblate
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_purchase: "2012-12-31"
hardware: PowerEdge R650
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 717DRT3
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.112
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.170.121
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -54,3 +59,7 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.113
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.170.122
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -7,6 +12,7 @@ dns1: 10.16.163.33
dns2: 10.16.163.34
dns_search1: "rdu3.fedoraproject.org"
dns_search2: "fedoraproject.org"
frozen: False
has_ipv4: yes
mac0: d8:5e:d3:e6:24:34
mac1: d8:5e:d3:e6:24:35
@ -54,3 +60,7 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.80
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.170.123
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -54,3 +59,7 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.81
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.170.124
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -54,3 +59,7 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.82
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.170.125
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -54,3 +59,7 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.83
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.170.126
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -54,3 +59,7 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.105
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.170.15
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -54,3 +59,7 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.12
ping: true
http: true
https: true
datacenter: rdu3
dns1: 10.16.163.33
br0_ipv4_ip: 10.16.169.31
@ -50,3 +55,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2TFSHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.13
ping: true
http: true
https: true
datacenter: rdu3
dns1: 10.16.163.33
br0_ipv4_ip: 10.16.169.32
@ -51,3 +56,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2TFTHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.14
ping: true
http: true
https: true
datacenter: rdu3
dns1: 10.16.163.33
br0_ipv4_ip: 10.16.169.33
@ -50,3 +55,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2TGRHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.15
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.34
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -52,3 +57,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2TGSHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -0,0 +1,70 @@
---
bmc:
ip_address: 10.16.160.16
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.35
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
datacenter: rdu3
dns1: 10.16.163.33
dns2: 10.16.163.34
dns_search1: "rdu3.fedoraproject.org"
dns_search2: "fedoraproject.org"
has_ipv4: yes
mac0: c8:4b:d6:88:fb:c6
mac1: c8:4b:d6:88:fb:c7
mac2: 6c:fe:54:57:5f:48
mac3: 6c:fe:54:57:5f:49
network_connections:
# Bridge profile
- name: br0
state: up
type: bridge
mtu: 1500
autoconnect: yes
ip:
address:
- "{{ br0_ipv4_ip }}/{{ br0_ipv4_nm }}"
dhcp4: no
dns:
- "{{ dns1 }}"
- "{{ dns2 }}"
dns_search:
- "{{ dns_search1 }}"
- "{{ dns_search2 }}"
gateway4: "{{ br0_ipv4_gw }}"
# Bond profile
- name: bond0
type: bond
interface_name: bond0
mtu: 1500
controller: br0
bond:
mode: 802.3ad
# Port profile for the 1st Ethernet device
- name: bond0-port1
mac: "{{ mac2 }}"
type: ethernet
controller: bond0
state: up
mtu: 1500
# Port profile for the 2nd Ethernet device
- name: bond0-port2
mac: "{{ mac3 }}"
type: ethernet
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: ""
date_hw_purchase: "2022-12-31"
hardware: PowerEdge R650
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 3ZGTRT3
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -0,0 +1,70 @@
---
bmc:
ip_address: 10.16.160.17
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.36
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
datacenter: rdu3
dns1: 10.16.163.33
dns2: 10.16.163.34
dns_search1: "rdu3.fedoraproject.org"
dns_search2: "fedoraproject.org"
has_ipv4: yes
mac0: c8:4b:d6:89:f7:5c
mac1: c8:4b:d6:89:f7:5d
mac2: 6c:fe:54:57:80:2c
mac3: 6c:fe:54:57:80:2d
network_connections:
# Bridge profile
- name: br0
state: up
type: bridge
mtu: 1500
autoconnect: yes
ip:
address:
- "{{ br0_ipv4_ip }}/{{ br0_ipv4_nm }}"
dhcp4: no
dns:
- "{{ dns1 }}"
- "{{ dns2 }}"
dns_search:
- "{{ dns_search1 }}"
- "{{ dns_search2 }}"
gateway4: "{{ br0_ipv4_gw }}"
# Bond profile
- name: bond0
type: bond
interface_name: bond0
mtu: 1500
controller: br0
bond:
mode: 802.3ad
# Port profile for the 1st Ethernet device
- name: bond0-port1
mac: "{{ mac2 }}"
type: ethernet
controller: bond0
state: up
mtu: 1500
# Port profile for the 2nd Ethernet device
- name: bond0-port2
mac: "{{ mac3 }}"
type: ethernet
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: ""
date_hw_purchase: "2022-12-31"
hardware: PowerEdge R650
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2ZGTRT3
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -0,0 +1,68 @@
---
bmc:
ip_address: 10.16.160.18
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.37
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
datacenter: rdu3
dns1: 10.16.163.33
dns2: 10.16.163.34
dns_search1: "rdu3.fedoraproject.org"
dns_search2: "fedoraproject.org"
has_ipv4: yes
mac0: 6c:fe:54:57:4d:80
mac1: 6c:fe:54:57:4d:81
network_connections:
# Bridge profile
- name: br0
state: up
type: bridge
mtu: 1500
autoconnect: yes
ip:
address:
- "{{ br0_ipv4_ip }}/{{ br0_ipv4_nm }}"
dhcp4: no
dns:
- "{{ dns1 }}"
- "{{ dns2 }}"
dns_search:
- "{{ dns_search1 }}"
- "{{ dns_search2 }}"
gateway4: "{{ br0_ipv4_gw }}"
# Bond profile
- name: bond0
type: bond
interface_name: bond0
mtu: 1500
controller: br0
bond:
mode: 802.3ad
# Port profile for the 1st Ethernet device
- name: bond0-port1
mac: "{{ mac0 }}"
type: ethernet
controller: bond0
state: up
mtu: 1500
# Port profile for the 2nd Ethernet device
- name: bond0-port2
mac: "{{ mac1 }}"
type: ethernet
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2029-02-17"
date_hw_purchase: "2022-12-31"
hardware: PowerEdge R650
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 617DRT3
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.19
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.38
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -52,3 +57,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2THTHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.21
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.39
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -52,3 +57,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2TBTHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.22
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.40
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -52,3 +57,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2TCRHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.24
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.42
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -52,3 +57,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2TFRHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.25
ping: true
http: true
https: true
br0_ipv4_ip: 10.16.169.43
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -52,3 +57,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2023-05-27"
date_hw_purchase: "2016-05-26"
hardware: PowerEdge FC430
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 2TCSHB2
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -5,3 +5,13 @@ eth0_ipv4_ip: 10.16.172.23
ipa_server: ipa01.rdu3.fedoraproject.org
resolvconf: "resolv.conf/rdu3"
vmhost: bvmhost-x86-riscv01.rdu3.fedoraproject.org
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2028-10-12"
date_hw_purchase: "2024-01-31"
hardware: PowerEdge R450
location: RDU3
serialno_a: D922FZ3
type: Build_Vmserver
vendor: Dell

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.101
ping: true
http: false
https: false
http: true
https: true
br0_ipv4_ip: 10.16.170.11
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -59,3 +59,14 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2028-07-20"
date_hw_purchase: "2024-01-31"
hardware: Mt Snow
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 231001325
type: Build_Vmserver
vendor: Ampere/Gigabyte

View file

@ -57,3 +57,14 @@ nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
zabbix_macros:
NET.IF.IFNAME.NOT_MATCHES: "^vnet.*"
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2028-07-20"
date_hw_purchase: "2024-01-30"
hardware: Mt Snow
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 231001329
type: Build_Vmserver
vendor: Ampere/Gigabyte

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.102
ping: true
http: false
https: false
http: true
https: true
br0_ipv4_ip: 10.16.170.12
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -59,3 +59,14 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2028-07-20"
date_hw_purchase: "2024-01-31"
hardware: Mt Snow
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 231001328
type: Build_Vmserver
vendor: Ampere/Gigabyte

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.103
ping: true
http: false
https: false
http: true
https: true
br0_ipv4_ip: 10.16.170.13
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -59,3 +59,14 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2028-07-20"
date_hw_purchase: "2024-01-31"
hardware: Mt Snow
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 231001327
type: Build_Vmserver
vendor: Ampere/Gigabyte

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.104
ping: true
http: false
https: false
http: true
https: true
br0_ipv4_ip: 10.16.170.14
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -59,3 +59,14 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2028-07-20"
date_hw_purchase: "2024-01-31"
hardware: Mt Snow
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 231001326
type: Build_Vmserver
vendor: Ampere/Gigabyte

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.120
ping: true
http: false
https: false
http: true
https: true
br0_ipv4_ip: 10.16.170.28
br0_ipv4_gw: 10.16.170.254
br0_ipv4_nm: 24
@ -59,3 +59,7 @@ network_connections:
mtu: 1500
nrpe_procs_crit: 4500
nrpe_procs_warn: 4000
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.62
ping: true
http: false
https: true
br0_ipv4_ip: 10.16.171.21
br0_ipv4_gw: 10.16.171.254
br0_ipv4_nm: 24
@ -60,3 +65,14 @@ nrpe_procs_crit: 13000
nrpe_procs_warn: 12000
zabbix_macros:
MEMORY.AVAILABLE.MIN: 0
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2027-01-31"
date_hw_purchase: "2021-11-19"
hardware: Power 9 9183-22x
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 780483A
type: Build_vmServer
vendor: IBM

View file

@ -3,7 +3,7 @@ bmc:
ip_address: 10.16.160.140
ping: true
http: false
https: false
https: true
br0_ipv4: 10.16.171.25
br0_ipv4_gw: 10.16.171.254
br0_ipv4_nm: 24
@ -66,5 +66,9 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"
zabbix_macros:
'LOAD_AVG_PER_CPU.MAX.WARN': 5 # frequently busy

View file

@ -3,7 +3,7 @@ bmc:
ip_address: 10.16.160.140
ping: true
http: false
https: false
https: true
br0_ipv4: 10.16.171.26
br0_ipv4_gw: 10.16.171.254
br0_ipv4_nm: 24
@ -66,5 +66,9 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"
zabbix_macros:
'LOAD_AVG_PER_CPU.MAX.WARN': 5 # frequently busy

View file

@ -3,4 +3,3 @@ dns1: 10.16.163.33
dns2: 10.16.163.34
dns_search1: rdu3.fedoraproject.org
nbde: false
zabbix_ping_only: true # no agent access on this host

View file

@ -4,4 +4,3 @@ dns1: 10.16.163.33
dns2: 10.16.163.34
dns_search1: rdu3.fedoraproject.org
nbde: false
zabbix_ping_only: true # no agent access on this host

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.91
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.169.11
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -58,3 +58,7 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -58,3 +58,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2025-01-01"
date_hw_purchase: "2018-04-12"
hardware: PowerEdge R630
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: CLTKMN2
type: #Build vm hosts - Other
vendor: Dell

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.92
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.169.12
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -58,3 +58,7 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -58,3 +58,13 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_purchase: "2022-12-31"
hardware: PowerEdge R650
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: 3ZGTRT3
type: Staging_Vmserver
vendor: Dell

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.93
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.169.13
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -58,3 +58,7 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -58,3 +58,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2025-01-01"
date_hw_purchase: "2018-04-12"
hardware: PowerEdge R630
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: CLTDMN2
type: #Build vm hosts - Other
vendor: Dell

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.94
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.169.14
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -58,3 +58,7 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.95
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.169.15
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -58,3 +58,7 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.96
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.169.16
br0_ipv4_gw: 10.16.169.254
br0_ipv4_nm: 24
@ -58,3 +58,7 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.55
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.172.11
br0_ipv4_gw: 10.16.172.254
br0_ipv4_nm: 24
@ -58,3 +58,7 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.123
ping: true
http: false
https: false
http: true
https: true
br0_ipv4: 10.16.172.12
br0_ipv4_gw: 10.16.172.254
br0_ipv4_nm: 24
@ -58,3 +58,7 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -8,7 +8,7 @@ koji_instance: "primary"
kojihub_scheme: https
kojihub_url: koji.fedoraproject.org/kojihub
kojipkgs_url: kojipkgs.fedoraproject.org
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/42/Server/x86_64/os/
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/43/Server/x86_64/os/
ks_url: https://infrastructure.fedoraproject.org/repo/rhel/ks/kvm-fedora
virt_install_command: "{{ virt_install_command_one_nic_unsafe }}"
vmhost: bvmhost-x86-02.rdu3.fedoraproject.org

View file

@ -5,7 +5,7 @@ eth0_ipv4_ip: 10.16.169.122
# This VM is the compose host for IoT Edition
freezes: false
koji_hub_nfs: "fedora_koji"
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/42/Everything/x86_64/os/
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/43/Everything/x86_64/os/
ks_url: https://infrastructure.fedoraproject.org/repo/rhel/ks/kvm-fedora
main_bridge: br0
mem_size: 32768

View file

@ -5,7 +5,7 @@ koji_hub_nfs: "fedora_koji"
kojihub_scheme: https
kojihub_url: koji.fedoraproject.org/kojihub
kojipkgs_url: kojipkgs.fedoraproject.org
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/42/Server/x86_64/os/
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/43/Server/x86_64/os/
ks_url: https://infrastructure.fedoraproject.org/repo/rhel/ks/kvm-fedora
#
# These are 64bit

View file

@ -8,7 +8,7 @@ koji_instance: "secondary"
kojihub_scheme: https
kojihub_url: riscv-koji.fedoraproject.org/kojihub
kojipkgs_url: riscv-kojipkgs.fedoraproject.org
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/42/Server/x86_64/os/
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/43/Server/x86_64/os/
ks_url: https://infrastructure.fedoraproject.org/repo/rhel/ks/kvm-fedora
virt_install_command: "{{ virt_install_command_one_nic_unsafe }}"
vmhost: bvmhost-x86-riscv01.rdu3.fedoraproject.org

View file

@ -41,3 +41,5 @@ shared_buffers: "4GB"
tcp_ports: [5432, 443]
vmhost: vmhost-x86-04.rdu3.fedoraproject.org
volgroup: /dev/vg_guests
zabbix_macros:
'PG.LOCKS.MAX.WARN:"mirrormanager2"': 3000

View file

@ -52,3 +52,5 @@ swap: false
temp_buffers: "192MB"
vmhost: bvmhost-x86-01.rdu3.fedoraproject.org
volgroup: /dev/vg_guests
zabbix_macros:
'PG.LOCKS.MAX.WARN:"koji"': 500

View file

@ -80,3 +80,8 @@ num_cpus: 48
shared_buffers: "24GB"
vmhost: vmhost-x86-04.rdu3.fedoraproject.org
volgroup: /dev/vg_guests
zabbix_macros:
'PG.LOCKS.MAX.WARN:"anitya"': 500
'PG.LOCKS.MAX.WARN:"bodhi2"': 500
'PG.LOCKS.MAX.WARN:"datanommer2"': 1000
'PG.LOCKS.MAX.WARN:"hyperkitty"': 500

View file

@ -0,0 +1,2 @@
datacenter: aws
inventory_hostname: "f44-test.fedorainfracloud.org"

View file

@ -0,0 +1,54 @@
---
datacenter: rdu3
dns1: 10.16.163.33
br0_ipv4_ip: 10.16.179.35
br0_ipv4_gw: 10.16.179.254
br0_ipv4_nm: 24
has_ipv4: yes
has_ipv6: no
mac0: c4:cb:e1:ed:b1:6e
mac1: c4:cb:e1:ed:b1:6f
mac2: 30:3e:a7:2a:65:28
mac3: 30:3e:a7:2a:65:29
mac4: 30:3e:a7:2a:65:2a
mac5: 30:3e:a7:2a:65:2b
network_connections:
# Bridge profile
- name: br0
state: up
type: bridge
mtu: 1500
autoconnect: yes
ip:
address:
- "{{ br0_ipv4_ip }}/{{ br0_ipv4_nm }}"
dhcp4: no
dns:
- "{{ dns1 }}"
- "{{ dns2 }}"
dns_search:
- "{{ dns_search1 }}"
- "{{ dns_search2 }}"
gateway4: "{{ br0_ipv4_gw }}"
# Bond profile
- name: bond0
type: bond
interface_name: bond0
mtu: 1500
controller: br0
bond:
mode: 802.3ad
# Port profile for the 1st Ethernet device
- name: bond0-port1
mac: "{{ mac2 }}"
type: ethernet
controller: bond0
state: up
mtu: 1500
# Port profile for the 2nd Ethernet device
- name: bond0-port2
mac: "{{ mac3 }}"
type: ethernet
controller: bond0
state: up
mtu: 1500

View file

@ -63,3 +63,13 @@ nrpe_procs_warn: 1250
postfix_group: vpn
vpn: true
notes: "vhost at ibiblio"
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_purchase: "2022-12-20"
hardware: PowerEdge R750
location: RDU3
serialno_a: 2KC66X3
type: Web_Vmserver
vendor: Dell

View file

@ -66,3 +66,12 @@ vpn: true
zabbix_macros:
VFS.DEV.READ.AWAIT.WARN: 100
VFS.DEV.WRITE.AWAIT.WARN: 100
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_purchase: "2015-06-29"
hardware: PowerEdge R630
location: RDU3
serialno_a: 4T05S52
type: Web_Vmserver
vendor: Dell

View file

@ -1,16 +0,0 @@
---
datacenter: rdu3
eth0_ipv4_gw: 10.16.166.254
eth0_ipv4_ip: 10.16.166.83
ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/42/Server/x86_64/os/
ks_url: https://infrastructure.fedoraproject.org/repo/rhel/ks/kvm-fedora
vmhost: vmhost-x86-04.stg.rdu3.fedoraproject.org
volgroup: /dev/vg_guests
# Network configuration for RDU3
dns: 10.16.163.33
dns1: 10.16.163.33
dns2: 10.16.163.34
dns_search1: "rdu3.fedoraproject.org"
dns_search2: "vpn.fedoraproject.org"
dns_search3: "fedoraproject.org"
openid: yes

View file

@ -1,4 +1,9 @@
---
bmc:
ip_address: 10.16.160.66
ping: false
http: false
https: false
datacenter: rdu3
dns: 10.16.163.33
br0_ipv4_ip: 10.16.174.130
@ -48,3 +53,14 @@ network_connections:
controller: bond0
state: up
mtu: 1500
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
date_hw_expiry: "2029-02-10"
date_hw_purchase: "2024-04-15"
hardware: PowerEdge R650
location: RDU3
oob_ip: "{{ bmc.ip_address }}"
serialno_a: F76HC14
type: Prod_Dedicated_HW
vendor: Dell

View file

@ -20,5 +20,5 @@ root_auth_users: msuchy frostyx praiskup nikromen ttomecek jpodivin sgallagh mma
nrpe_client_uid: 500
tcp_ports: [
22, 80, 443,
22, 80, 443, 8090,
]

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.114
ping: true
http: false
https: false
http: true
https: true
bondbr0_ipv4: 10.16.174.61
bondbr0_ipv4_gw: 10.16.174.254
bondbr0_ipv4_nm: 24
@ -67,7 +67,7 @@ nrpe_procs_warn: 1400
openqa_rngd: true
openqa_tap_iface: bondbr0
# this is a very powerful machine, can handle so many openQA workers
openqa_workers: 60
openqa_workers: 45
# also means we need to bump the load average threshold
openqa_critical_threshold: 120
sudoers: "{{ private }}/files/sudo/qavirt-sudoers"
@ -76,4 +76,9 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers"
# QEMUPORT is:
# $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002;
# so for worker 1 it's 20012, for worker 2 it's 20022, etc etc
tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603']
tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453']
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.142
ping: true
http: false
https: false
http: true
https: true
bondbr0_ipv4: 10.16.174.62
bondbr0_ipv4_gw: 10.16.174.254
bondbr0_ipv4_nm: 24
@ -67,7 +67,7 @@ nrpe_procs_warn: 1400
openqa_rngd: true
openqa_tap_iface: bondbr0
# this is a very powerful machine, can handle so many openQA workers
openqa_workers: 60
openqa_workers: 45
# also means we need to bump the load average threshold
openqa_critical_threshold: 120
sudoers: "{{ private }}/files/sudo/qavirt-sudoers"
@ -76,4 +76,9 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers"
# QEMUPORT is:
# $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002;
# so for worker 1 it's 20012, for worker 2 it's 20022, etc etc
tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603']
tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453']
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.143
ping: true
http: false
https: false
http: true
https: true
bondbr0_ipv4: 10.16.174.63
bondbr0_ipv4_gw: 10.16.174.254
bondbr0_ipv4_nm: 24
@ -67,7 +67,7 @@ nrpe_procs_warn: 1400
openqa_rngd: true
openqa_tap_iface: bondbr0
# this is a very powerful machine, can handle so many openQA workers
openqa_workers: 60
openqa_workers: 45
# also means we need to bump the load average threshold
openqa_critical_threshold: 120
sudoers: "{{ private }}/files/sudo/qavirt-sudoers"
@ -76,4 +76,9 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers"
# QEMUPORT is:
# $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002;
# so for worker 1 it's 20012, for worker 2 it's 20022, etc etc
tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603']
tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453']
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

View file

@ -2,8 +2,8 @@
bmc:
ip_address: 10.16.160.84
ping: true
http: false
https: false
http: true
https: true
bondbr0_ipv4: 10.16.174.64
bondbr0_ipv4_gw: 10.16.174.254
bondbr0_ipv4_nm: 24
@ -67,7 +67,7 @@ nrpe_procs_warn: 1400
openqa_rngd: true
openqa_tap_iface: bondbr0
# this is a very powerful machine, can handle so many openQA workers
openqa_workers: 60
openqa_workers: 45
# also means we need to bump the load average threshold
openqa_critical_threshold: 120
sudoers: "{{ private }}/files/sudo/qavirt-sudoers"
@ -76,4 +76,9 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers"
# QEMUPORT is:
# $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002;
# so for worker 1 it's 20012, for worker 2 it's 20022, etc etc
tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603']
tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453']
# This is used to populate the inventory fields, only specific keys are allowed, see
# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory
zabbix_inventory:
oob_ip: "{{ bmc.ip_address }}"

Some files were not shown because too many files have changed in this diff Show more