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:
commit
ab631bed2e
550 changed files with 13607 additions and 6443 deletions
159
.ai_review/project.md
Normal file
159
.ai_review/project.md
Normal 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.
|
||||
|
|
@ -67,3 +67,4 @@ skip_list:
|
|||
- role-name[path]
|
||||
- var-naming[no-role-prefix]
|
||||
- no-changed-when
|
||||
- ignore-errors
|
||||
|
|
|
|||
15
.forgejo/workflows/ai-review.yaml
Normal file
15
.forgejo/workflows/ai-review.yaml
Normal 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 }}
|
||||
62
.forgejo/workflows/ci.yaml
Normal file
62
.forgejo/workflows/ci.yaml
Normal 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
6
.gitignore
vendored
|
|
@ -1,5 +1,11 @@
|
|||
*.swp
|
||||
*.pyc
|
||||
|
||||
# Cursor workspace
|
||||
.cursor
|
||||
|
||||
# emacs projectile
|
||||
.projectile
|
||||
|
||||
# ansible-lint directory
|
||||
.ansible/
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -23,4 +23,8 @@ rules:
|
|||
# level: warning
|
||||
truthy:
|
||||
allowed-values: ['true', 'false', 'yes', 'no']
|
||||
|
||||
ignore:
|
||||
- '*/templates/*'
|
||||
- '*/openshift-apps/*/templates/*'
|
||||
...
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
- project:
|
||||
check:
|
||||
jobs:
|
||||
- fi-ansible-lint-diff
|
||||
- fi-yamllint-diff
|
||||
108
AGENTS.md
Normal file
108
AGENTS.md
Normal 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
|
||||
31
README.md
31
README.md
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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=""
|
||||
|
||||
|
|
|
|||
|
|
@ -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
1484
files/scripts/ansilog-playbook.py
Executable file
File diff suppressed because it is too large
Load diff
94
files/scripts/file-retention-iso-date
Executable file
94
files/scripts/file-retention-iso-date
Executable 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."
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ ipa_client_shell_groups:
|
|||
- sysadmin-datanommer
|
||||
- sysadmin-debuginfod
|
||||
- sysadmin-epel
|
||||
- sysadmin-gpu
|
||||
- sysadmin-koschei
|
||||
- sysadmin-libravatar
|
||||
- sysadmin-messaging
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
||||
|
|
|
|||
28
inventory/group_vars/copr_rpmeta_aws
Normal file
28
inventory/group_vars/copr_rpmeta_aws
Normal 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.
|
||||
28
inventory/group_vars/copr_rpmeta_dev_aws
Normal file
28
inventory/group_vars/copr_rpmeta_dev_aws
Normal 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.
|
||||
|
|
@ -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
15
inventory/group_vars/gpu
Normal 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
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
70
inventory/host_vars/buildhw-x86-05.rdu3.fedoraproject.org
Normal file
70
inventory/host_vars/buildhw-x86-05.rdu3.fedoraproject.org
Normal 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
|
||||
70
inventory/host_vars/buildhw-x86-06.rdu3.fedoraproject.org
Normal file
70
inventory/host_vars/buildhw-x86-06.rdu3.fedoraproject.org
Normal 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
|
||||
68
inventory/host_vars/buildhw-x86-07.rdu3.fedoraproject.org
Normal file
68
inventory/host_vars/buildhw-x86-07.rdu3.fedoraproject.org
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
2
inventory/host_vars/f44-test.fedorainfracloud.org
Normal file
2
inventory/host_vars/f44-test.fedorainfracloud.org
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
datacenter: aws
|
||||
inventory_hostname: "f44-test.fedorainfracloud.org"
|
||||
54
inventory/host_vars/gpu01.rdu3.fedoraproject.org
Normal file
54
inventory/host_vars/gpu01.rdu3.fedoraproject.org
Normal 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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
]
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue