* [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file
@ 2025-07-24 19:36 Daniel Gomez
2025-07-24 19:36 ` [PATCH v5 01/12] playbooks: fix playbook name for all hosts plays Daniel Gomez
` (13 more replies)
0 siblings, 14 replies; 20+ messages in thread
From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw)
To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez
Following Chuck's proposed changes to make task parallelism configurable
via the Ansible configuration file [1], and the subsequent cleanup
of ansible-playbook calls [2] along with the Python interpreter
improvements [3] to better support distros like NixOS through simplified
global interpreter configuration [4], I considered applying the same
approach to the inventory file. This would further streamline our
Ansible wrapper in the kdevops Makefiles.
Why make this change? By specifying the inventory file (typically
'hosts' file in kdevops) directly in ansible.cfg, we eliminate the
need for repeated -i/--inventory arguments and gain flexibility in
where the inventory file is located. This also supports the broader
sandboxing goal discussed in [5]. Moreover, by including localhost in
the inventory, we can clean up the Makefile wrapper even further by
removing --connection=localhost and -i localhost options, while also
enabling workflows to run directly on the controller node (with some
extra more modifications).
https://lore.kernel.org/kdevops/20240827-ansible-cleanups-v1-0-2828a816de5e@samsung.com/
[1]
Increase default task parallelism
https://lore.kernel.org/kdevops/20250404204827.34941-1-cel@kernel.org/
[2]
[PATCH 2/2] Makefile: Remove "-f 30" command line argument
https://lore.kernel.org/kdevops/20250417172119.3190398-2-cel@kernel.org/
[3]
https://lore.kernel.org/kdevops/20250404-python-interpreter-v1-0-04783b627ce7@samsung.com/
[4]
https://lore.kernel.org/kdevops/kwpt5iizzmryybpg6z3fgs6koak27rjggydfighd42wn7mxqja@2hwvtppppzsk/
[5]
https://lore.kernel.org/kdevops/20240827-ansible-cleanups-v1-0-2828a816de5e@samsung.com/
This series promotes the Ansible inventory file (typically 'hosts'
in kdevops) to the Ansible Configuration file (ansible.cfg). By doing
this, we allow to control the hosts globally rather than in all the
ansible-playbook commands, as well as clean up the ansible-playbook
command.
So, we don't need to define anymore the inventory file in the command.
However, playbooks may still be controlled on which targets the playbook
is run. This is done through the playbook itself and/or through the
ansible-playbook argument --limit. Also notice delegate_to is needed
when the playbook runs and iterates on specific nodes such as baseline
and dev but a specific task needs to be handled back to the controller
node.
As part of the series, the term 'all' to refer to all hosts is redefined
to include the localhost. This removes the need to be explicit with
localhost playbooks runs, as it's now just another target in the
inventory file. This term redefinition requires to change playbooks that
use the term all, either through ansible-playbook command or through
the host: field in the YAML playbook file. For this reason, the term
has been replaced in most cases with 'baseline:dev', which means all
targets in the inventory file in the baseline and dev groups, matching
the 'all' concept in the former configuration 'hosts' file. Except the
bootlinux.yml and guestfs.yml playbooks, all playbooks run either on
localhost or remote targets (the previous 'all' definition). Therefore,
all playbooks have been converted to use 'hosts: baseline:dev'. For
the bootlinux.yml playbook, 'all' is kept and the control of host
execution is done via the --limit argument. It was found that only
the linux-clone-9p target runs the bootlinux playbook in the localhost
while the rest of linux-* targets run the playbook in all the remotes
(baseline:dev). For guestfs.yml, a combination of --limit + delegate_to
is needed for the reason explained above: to iterate on the targets
(baseline:dev) but delegate certain tags to the controller node with
delegate_to.
In addition, in order to help me debug this change, I found it
convenient to print the Makefile target name being run before the
command. This allows to be more explicit in verbose mode (V=1) when a
playbook is run (or any subsequent command in the target). And makes it
easier to discover which target the ansible-playbook command belongs to
when debugging playbook execution. To clarify, V=1 already prints the
command but not the Makefile target. The command output behaviour will
be a bit different as it is today as the command itself will be printed
in one line, instead of multiple.
Series has been tested here:
v1:
https://github.com/linux-kdevops/kdevops/actions/runs/14773869477
v3:
https://github.com/linux-kdevops/kdevops/actions/runs/14846101950
v4:
https://github.com/linux-kdevops/kdevops/actions/runs/16033723055
v5:
https://github.com/linux-kdevops/kdevops/actions/runs/16506085205
Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
Changes in v5:
- Rebase on top of main as of 2025-07-24
- Update the new mmtests and stead_state Makefiles accordingly
- Test gitr and nfstest workflows with nfsd enabled
- Test pynfs workflow with iscsi service
- Fix spelling reported by Chuck
- Fix Ansible WARNING when generating ansible.cfg reported by Chuck.
Revert to specify inventory and target. After all, we can't leverage the
inventory in ansible.cfg as it's not generated yet
- Replace hosts field baseline:dev with iscsi in playbooks/iscsi.yml and
do the same for kdc, krb5 and nfsd, smbd playbooks. This also allows to
remove --limit from their ansible-playbook incantations
- Fix duplicate name field in playbooks/nfstest.yml
- Fix workflows that depend on nfsd, iscsi, smbd, kdc, krb5 guests by
introducing a new group "service", and use it for bringup operations and
SSH wait in $KDEVOPS_PROVISIONED_SSH (.provisioned_once_ssh) target.
Reported by Chuck
- Link to v4: https://lore.kernel.org/r/20250702-ansible_cfg_inventory-v4-0-67a54babd404@samsung.com
Changes in v4:
- Add trailers (from Luis)
- Rebase on top of main
- Link to v3: https://lore.kernel.org/r/20250505-ansible_cfg_inventory-v3-0-a153d93c35c4@samsung.com
Changes in v3:
- Fix LIMIT_HOSTS. When HOSTS="host1" was used, the --limit replacement
did not work anymore because of the quotes where not needed when using
long form arguments
- Fix bootlinux-local limit in linux target.
- Replace all:!localhost with baseline:dev as suggested by Luis. This
allows to include localhost as part of the baseline and/or dev groups
for baremetal workflows
- Allow to configure the ansible.cfg location. This requires to export
the ANSIBLE_CONFIG. This also enables sandboxing
- Fix debug mode when ansible.cfg is created (command was not printed
because of double @)
- Add back KDEVOPS_HOSTS as cli option. KDEVOPS_HOSTS was not part of
the cli before but it was allowed to be overwritten at command line
time. This allows to be explicit and keeps backwards compatibility with
the variable
- Extend ANSIBLE_CFG_FILE help as per Chuck's suggestion
- Move ANSIBLE_CFG_FILE location in Kconfig and place it after
SET_BY_CLI options
- Remove crash_watchdog.py inventory arguments (Reported by Luis)
- Remove inventory arguments from docs, READMEs and remaining Makefiles
- Move ueh_hosts hunk to fix undefined variable in patch "gen_hosts:
templates: add localhost to all hosts"
- Rename CONFIG_KDEVOPS_ANSIBLE_INVENTORY_FILE to CONFIG_ANSIBLE_CFG_INVENTORY
in scripts/lib.sh and kconfigs/Kconfig.ansible_provisioning
- Update cover letter reasoning and commit messages for better clarity
- Link to v2: https://lore.kernel.org/r/20250502-ansible_cfg_inventory-v2-0-d3c19ff4aa6e@samsung.com
Changes in v2:
- Update ANSIBLE_CFG_INVENTORY help description as per Chuck suggestion
- Add docs/kdevops-ansible-configuration.md for extensive module
documentation
- Include fix to avoid generating always the ansible.cfg and hosts
files. Reported by Chuck
The same commit change also includes support to change the ansible.cfg
path.
- Link to v1: https://lore.kernel.org/r/20250501-ansible_cfg_inventory-v1-0-c568bbaa3502@samsung.com
---
Daniel Gomez (12):
playbooks: fix playbook name for all hosts plays
playbooks: fix playbook name for localhost plays
Makefile: use long form of limit argument for clarity
Makefile: print target when debug
.github/workflows/fstests.yml: enable make verbosity
ansible_cfg: add inventory support
gen_hosts: add service group to inventory templates
gen_hosts: templates: include localhost in the all group
Makefile: use inventory from ansible.cfg
ansible_cfg: add support to change ansible.cfg file location
docs: ansible_cfg: add documentation
build.Makefile: fix verbosity of clean target
.github/workflows/fstests.yml | 16 ++--
MAINTAINERS | 2 +-
Makefile | 41 +++++----
Makefile.btrfs_progs | 4 +-
Makefile.build_qemu | 12 +--
Makefile.hypervisor-tunings | 3 +-
Makefile.kdevops | 19 ++--
Makefile.linux-mirror | 6 +-
Makefile.postfix | 3 +-
docs/kdevops-ansible-configuration.md | 102 +++++++++++++++++++++
docs/kdevops-terraform.md | 2 +-
kconfigs/Kconfig.ansible_cfg | 46 ++++++++++
kconfigs/Kconfig.ansible_provisioning | 8 +-
playbooks/blktests.yml | 3 +-
playbooks/bootlinux.yml | 3 +-
playbooks/build_qemu.yml | 3 +-
playbooks/common.yml | 3 +-
playbooks/create_data_partition.yml | 3 +-
playbooks/cxl.yml | 3 +-
playbooks/devconfig.yml | 3 +-
playbooks/fstests.yml | 6 +-
playbooks/gen-pci-kconfig.yml | 3 +-
playbooks/gen_hosts.yml | 3 +-
playbooks/gen_nodes.yml | 3 +-
playbooks/gen_tfvars.yml | 3 +-
playbooks/gitr.yml | 3 +-
playbooks/hypervisor-tuning.yml | 3 +-
playbooks/install-menuconfig-deps.yml | 3 +-
playbooks/install_systemd_journal_remote.yml | 3 +-
playbooks/install_systemd_timesyncd.yml | 3 +-
playbooks/install_terraform.yml | 3 +-
playbooks/install_vagrant_boxes.yml | 3 +-
playbooks/iscsi.yml | 3 +-
playbooks/kdc.yml | 3 +-
playbooks/kdevops_archive.yml | 3 +-
playbooks/krb5.yml | 3 +-
playbooks/ktls.yml | 3 +-
playbooks/libvirt_pcie_passthrough.yml | 3 +-
playbooks/libvirt_storage_pool_create.yml | 3 +-
playbooks/libvirt_user.yml | 3 +-
playbooks/linux-mirror.yml | 3 +-
playbooks/ltp.yml | 3 +-
playbooks/nfsd.yml | 3 +-
playbooks/nfstest.yml | 3 +-
playbooks/pkg.yml | 3 +-
playbooks/postfix_relay_host.yml | 3 +-
playbooks/pynfs.yml | 3 +-
playbooks/reboot-limit.yml | 3 +-
playbooks/roles/ansible_cfg/tasks/main.yml | 3 +-
.../roles/ansible_cfg/templates/ansible.cfg.j2 | 1 +
playbooks/roles/bootlinux/README.md | 12 +--
playbooks/roles/common/README.md | 2 +-
playbooks/roles/devconfig/README.md | 2 +-
playbooks/roles/gen_hosts/defaults/main.yml | 1 -
playbooks/roles/gen_hosts/tasks/main.yml | 54 +++++------
playbooks/roles/gen_hosts/templates/blktests.j2 | 1 +
playbooks/roles/gen_hosts/templates/cxl.j2 | 1 +
playbooks/roles/gen_hosts/templates/fstests.j2 | 16 ++++
playbooks/roles/gen_hosts/templates/gitr.j2 | 10 ++
playbooks/roles/gen_hosts/templates/hosts.j2 | 11 +++
playbooks/roles/gen_hosts/templates/ltp.j2 | 1 +
playbooks/roles/gen_hosts/templates/nfstest.j2 | 10 ++
playbooks/roles/gen_hosts/templates/pynfs.j2 | 8 ++
playbooks/roles/gen_hosts/templates/selftests.j2 | 1 +
playbooks/roles/gen_hosts/templates/sysbench.j2 | 1 +
playbooks/roles/guestfs/tasks/main.yml | 6 ++
playbooks/roles/libvirt_user/README.md | 4 +-
playbooks/roles/pkg/README.md | 2 +-
playbooks/roles/update_etc_hosts/tasks/main.yml | 2 +-
playbooks/rxe.yml | 3 +-
playbooks/selftests.yml | 3 +-
playbooks/siw.yml | 3 +-
playbooks/smbd.yml | 3 +-
playbooks/sysbench.yml | 3 +-
playbooks/terraform.yml | 4 +-
playbooks/update_etc_hosts.yml | 3 +-
playbooks/update_ssh_config_guestfs.yml | 3 +-
playbooks/update_ssh_config_vagrant.yml | 3 +-
scripts/archive.Makefile | 3 +-
scripts/build.Makefile | 2 +-
scripts/devconfig.Makefile | 8 +-
scripts/dynamic-pci-kconfig.Makefile | 3 +-
scripts/firstconfig.Makefile | 5 +-
scripts/gen-hosts.Makefile | 1 -
scripts/guestfs.Makefile | 19 ++--
scripts/install-menuconfig-deps.Makefile | 3 +-
scripts/iscsi.Makefile | 1 -
scripts/journal-server.Makefile | 23 +++--
scripts/kotd.Makefile | 16 ++--
scripts/krb5.Makefile | 2 -
scripts/ktls.Makefile | 1 -
scripts/lib.sh | 2 +-
scripts/nfsd.Makefile | 1 -
scripts/provision.Makefile | 5 +-
scripts/rdma.Makefile | 2 -
scripts/smbd.Makefile | 1 -
scripts/systemd-timesync.Makefile | 8 +-
scripts/terraform.Makefile | 6 +-
scripts/update_etc_hosts.Makefile | 2 +-
scripts/vagrant.Makefile | 10 +-
scripts/workflows/lib/crash.py | 4 +-
workflows/blktests/Makefile | 20 ++--
workflows/common/Makefile | 2 +-
workflows/cxl/Makefile | 14 +--
workflows/demos/reboot-limit/Makefile | 32 ++++---
workflows/fstests/Makefile | 40 +++++---
workflows/gitr/Makefile | 8 +-
workflows/linux/Makefile | 60 +++++++-----
workflows/ltp/Makefile | 8 +-
workflows/mmtests/Makefile | 12 +--
workflows/nfstest/Makefile | 8 +-
workflows/pynfs/Makefile | 12 +--
workflows/selftests/Makefile | 11 ++-
workflows/steady_state/Makefile | 8 +-
workflows/sysbench/Makefile | 12 +--
115 files changed, 601 insertions(+), 323 deletions(-)
---
base-commit: df5f66ca52a8dd0794c4c0ea72c1068643a18279
change-id: 20250430-ansible_cfg_inventory-7955944ce8ff
Best regards,
--
Daniel Gomez <da.gomez@samsung.com>
^ permalink raw reply [flat|nested] 20+ messages in thread* [PATCH v5 01/12] playbooks: fix playbook name for all hosts plays 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 02/12] playbooks: fix playbook name for localhost plays Daniel Gomez ` (12 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> Fix name rule by naming all the playbooks that run in all hosts. https://ansible.readthedocs.io/projects/lint/rules/name/ Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- playbooks/blktests.yml | 3 ++- playbooks/bootlinux.yml | 3 ++- playbooks/common.yml | 3 ++- playbooks/create_data_partition.yml | 3 ++- playbooks/cxl.yml | 3 ++- playbooks/devconfig.yml | 3 ++- playbooks/fstests.yml | 3 ++- playbooks/gitr.yml | 3 ++- playbooks/iscsi.yml | 3 ++- playbooks/kdc.yml | 3 ++- playbooks/krb5.yml | 3 ++- playbooks/ktls.yml | 3 ++- playbooks/ltp.yml | 3 ++- playbooks/nfsd.yml | 3 ++- playbooks/nfstest.yml | 3 ++- playbooks/pkg.yml | 3 ++- playbooks/pynfs.yml | 3 ++- playbooks/reboot-limit.yml | 3 ++- playbooks/rxe.yml | 3 ++- playbooks/selftests.yml | 3 ++- playbooks/siw.yml | 3 ++- playbooks/smbd.yml | 3 ++- playbooks/sysbench.yml | 3 ++- playbooks/terraform.yml | 1 + playbooks/update_etc_hosts.yml | 3 ++- 25 files changed, 49 insertions(+), 24 deletions(-) diff --git a/playbooks/blktests.yml b/playbooks/blktests.yml index 99732af..db58d43 100644 --- a/playbooks/blktests.yml +++ b/playbooks/blktests.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Configure and run the block layer testing workflow + hosts: all roles: - role: blktests diff --git a/playbooks/bootlinux.yml b/playbooks/bootlinux.yml index 418bbed..676469d 100644 --- a/playbooks/bootlinux.yml +++ b/playbooks/bootlinux.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: bootlinux + hosts: all roles: - role: bootlinux diff --git a/playbooks/common.yml b/playbooks/common.yml index 48485e3..d49e7d0 100644 --- a/playbooks/common.yml +++ b/playbooks/common.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Common tasks + hosts: all roles: - role: common diff --git a/playbooks/create_data_partition.yml b/playbooks/create_data_partition.yml index fe7890b..fa92567 100644 --- a/playbooks/create_data_partition.yml +++ b/playbooks/create_data_partition.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Create Directory Data Path (e.g. /data partition) + hosts: all roles: - role: create_data_partition diff --git a/playbooks/cxl.yml b/playbooks/cxl.yml index 8763859..65277d4 100644 --- a/playbooks/cxl.yml +++ b/playbooks/cxl.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: cxl + hosts: all roles: - role: cxl diff --git a/playbooks/devconfig.yml b/playbooks/devconfig.yml index 871651d..b4a7393 100644 --- a/playbooks/devconfig.yml +++ b/playbooks/devconfig.yml @@ -1,5 +1,6 @@ --- -- hosts: all +- name: Configure developer environment on target systems + hosts: all gather_facts: no roles: - role: devconfig diff --git a/playbooks/fstests.yml b/playbooks/fstests.yml index de8cb25..191c807 100644 --- a/playbooks/fstests.yml +++ b/playbooks/fstests.yml @@ -3,6 +3,7 @@ roles: - role: fstests_prep_localhost -- hosts: all +- name: Configure and run the filesystem testing suite workflow + hosts: all roles: - role: fstests diff --git a/playbooks/gitr.yml b/playbooks/gitr.yml index 4c3e3ba..c210cc3 100644 --- a/playbooks/gitr.yml +++ b/playbooks/gitr.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Git regresion filesystem test workflow + hosts: all roles: - role: gitr diff --git a/playbooks/iscsi.yml b/playbooks/iscsi.yml index cea4000..fb1e7a2 100644 --- a/playbooks/iscsi.yml +++ b/playbooks/iscsi.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Provision and manage iSCSI targets and LUNs for shared block storage + hosts: all roles: - role: iscsi diff --git a/playbooks/kdc.yml b/playbooks/kdc.yml index 66709db..cab5265 100644 --- a/playbooks/kdc.yml +++ b/playbooks/kdc.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Setup MIT Kerberos V5 KDC with realm and admin settings + hosts: all roles: - role: kdc diff --git a/playbooks/krb5.yml b/playbooks/krb5.yml index 52ca3ef..a79475f 100644 --- a/playbooks/krb5.yml +++ b/playbooks/krb5.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Setup MIT Kerberos V5 KDC and configure NFS clients for Kerberos authentication + hosts: all roles: - role: krb5 diff --git a/playbooks/ktls.yml b/playbooks/ktls.yml index 8b7044c..b07a161 100644 --- a/playbooks/ktls.yml +++ b/playbooks/ktls.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Provision self-signed TLS certs and enable tlshd for kernel TLS testing (ktls) + hosts: all roles: - role: ktls diff --git a/playbooks/ltp.yml b/playbooks/ltp.yml index 5921cef..d1e8835 100644 --- a/playbooks/ltp.yml +++ b/playbooks/ltp.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Configure and run the Linux Test Project (LTP) suite workflow + hosts: all roles: - role: ltp diff --git a/playbooks/nfsd.yml b/playbooks/nfsd.yml index 6c77358..b129300 100644 --- a/playbooks/nfsd.yml +++ b/playbooks/nfsd.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Set up and start the NFS server with configurable exports + hosts: all roles: - role: nfsd diff --git a/playbooks/nfstest.yml b/playbooks/nfstest.yml index d414091..5df62ff 100644 --- a/playbooks/nfstest.yml +++ b/playbooks/nfstest.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Configure and run the nfstest workflow for NFS testing + hosts: all roles: - role: nfstest diff --git a/playbooks/pkg.yml b/playbooks/pkg.yml index f9d3e62..d6718a1 100644 --- a/playbooks/pkg.yml +++ b/playbooks/pkg.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Package name wrapper + hosts: all roles: - role: pkg diff --git a/playbooks/pynfs.yml b/playbooks/pynfs.yml index ad5b3e2..1ce6cb7 100644 --- a/playbooks/pynfs.yml +++ b/playbooks/pynfs.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Configure and run pynfs testing workflow + hosts: all roles: - role: pynfs diff --git a/playbooks/reboot-limit.yml b/playbooks/reboot-limit.yml index 3793623..7cbaea0 100644 --- a/playbooks/reboot-limit.yml +++ b/playbooks/reboot-limit.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Configure and run the reboot-limit workflow + hosts: all roles: - role: reboot-limit diff --git a/playbooks/rxe.yml b/playbooks/rxe.yml index dc51c03..a5d058f 100644 --- a/playbooks/rxe.yml +++ b/playbooks/rxe.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Set up software-emulated RoCE RDMA over Ethernet (rxe) via udev + hosts: all roles: - role: rxe diff --git a/playbooks/selftests.yml b/playbooks/selftests.yml index 6f7d777..89bc824 100644 --- a/playbooks/selftests.yml +++ b/playbooks/selftests.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Configure and run Linux kernel selftests (kselftests) + hosts: all roles: - role: selftests diff --git a/playbooks/siw.yml b/playbooks/siw.yml index 5258a5a..e6b9d61 100644 --- a/playbooks/siw.yml +++ b/playbooks/siw.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Set up software-emulated iWARP RDMA over TCP/IP (siw) via udev + hosts: all roles: - role: siw diff --git a/playbooks/smbd.yml b/playbooks/smbd.yml index 47cd022..ec5176a 100644 --- a/playbooks/smbd.yml +++ b/playbooks/smbd.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Set up Samba server with shared volume and system integration + hosts: all roles: - role: smbd diff --git a/playbooks/sysbench.yml b/playbooks/sysbench.yml index 6102635..37d7824 100644 --- a/playbooks/sysbench.yml +++ b/playbooks/sysbench.yml @@ -1,4 +1,5 @@ --- -- hosts: all +- name: Configure and run the sysbench workflow + hosts: baseline:dev roles: - role: sysbench diff --git a/playbooks/terraform.yml b/playbooks/terraform.yml index 15872a6..9b5baed 100644 --- a/playbooks/terraform.yml +++ b/playbooks/terraform.yml @@ -1,5 +1,6 @@ --- - name: Provision target nodes with terraform + hosts: all gather_facts: false hosts: all roles: diff --git a/playbooks/update_etc_hosts.yml b/playbooks/update_etc_hosts.yml index a0c2174..269f23c 100644 --- a/playbooks/update_etc_hosts.yml +++ b/playbooks/update_etc_hosts.yml @@ -1,5 +1,6 @@ --- -- hosts: all +- name: Update target /etc/hosts with all targets and disable cloud-init + hosts: all gather_facts: no roles: - role: update_etc_hosts -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 02/12] playbooks: fix playbook name for localhost plays 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 01/12] playbooks: fix playbook name for all hosts plays Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 03/12] Makefile: use long form of limit argument for clarity Daniel Gomez ` (11 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> Fix name rule by naming all the playbooks that run in localhost. https://ansible.readthedocs.io/projects/lint/rules/name/ Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- playbooks/build_qemu.yml | 3 ++- playbooks/fstests.yml | 3 ++- playbooks/gen-pci-kconfig.yml | 3 ++- playbooks/gen_hosts.yml | 3 ++- playbooks/gen_nodes.yml | 3 ++- playbooks/gen_tfvars.yml | 3 ++- playbooks/hypervisor-tuning.yml | 3 ++- playbooks/install-menuconfig-deps.yml | 3 ++- playbooks/install_systemd_journal_remote.yml | 3 ++- playbooks/install_systemd_timesyncd.yml | 3 ++- playbooks/install_terraform.yml | 3 ++- playbooks/install_vagrant_boxes.yml | 3 ++- playbooks/kdevops_archive.yml | 3 ++- playbooks/libvirt_pcie_passthrough.yml | 3 ++- playbooks/libvirt_storage_pool_create.yml | 3 ++- playbooks/libvirt_user.yml | 3 ++- playbooks/linux-mirror.yml | 3 ++- playbooks/postfix_relay_host.yml | 3 ++- playbooks/update_ssh_config_guestfs.yml | 3 ++- playbooks/update_ssh_config_vagrant.yml | 3 ++- 20 files changed, 40 insertions(+), 20 deletions(-) diff --git a/playbooks/build_qemu.yml b/playbooks/build_qemu.yml index d094c25..861647e 100644 --- a/playbooks/build_qemu.yml +++ b/playbooks/build_qemu.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Build and install QEMU + hosts: localhost roles: - role: build_qemu diff --git a/playbooks/fstests.yml b/playbooks/fstests.yml index 191c807..35a2122 100644 --- a/playbooks/fstests.yml +++ b/playbooks/fstests.yml @@ -1,5 +1,6 @@ --- -- hosts: localhost +- name: Enable fstests JUnit XML result processing + hosts: localhost roles: - role: fstests_prep_localhost diff --git a/playbooks/gen-pci-kconfig.yml b/playbooks/gen-pci-kconfig.yml index a20aba7..7a4ce89 100644 --- a/playbooks/gen-pci-kconfig.yml +++ b/playbooks/gen-pci-kconfig.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Generate dynamic PCI-E passthrough Kconfig files for libvirt guests + hosts: localhost roles: - role: gen_pci_kconfig diff --git a/playbooks/gen_hosts.yml b/playbooks/gen_hosts.yml index 942b4f2..c6b3b73 100644 --- a/playbooks/gen_hosts.yml +++ b/playbooks/gen_hosts.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Generate Ansible inventory for guests (hosts) + hosts: localhost roles: - role: gen_hosts diff --git a/playbooks/gen_nodes.yml b/playbooks/gen_nodes.yml index c298b34..39a259f 100644 --- a/playbooks/gen_nodes.yml +++ b/playbooks/gen_nodes.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Generate guests node configuration (libvirt domain XML) + hosts: localhost roles: - role: gen_nodes diff --git a/playbooks/gen_tfvars.yml b/playbooks/gen_tfvars.yml index 5ff85af..9d75c86 100644 --- a/playbooks/gen_tfvars.yml +++ b/playbooks/gen_tfvars.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Generate Terraform variables file (terraform/terraform.tfvars) + hosts: localhost roles: - role: gen_tfvars diff --git a/playbooks/hypervisor-tuning.yml b/playbooks/hypervisor-tuning.yml index 29f735d..c295b87 100644 --- a/playbooks/hypervisor-tuning.yml +++ b/playbooks/hypervisor-tuning.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Apply hypervisor tuning settings (KSM and Zswap) + hosts: localhost roles: - role: hypervisor-tuning diff --git a/playbooks/install-menuconfig-deps.yml b/playbooks/install-menuconfig-deps.yml index 845b287..be1c643 100644 --- a/playbooks/install-menuconfig-deps.yml +++ b/playbooks/install-menuconfig-deps.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Install dependencies for Kconfig menuconfig + hosts: localhost roles: - role: install-menuconfig-deps diff --git a/playbooks/install_systemd_journal_remote.yml b/playbooks/install_systemd_journal_remote.yml index 46014d2..5cc0870 100644 --- a/playbooks/install_systemd_journal_remote.yml +++ b/playbooks/install_systemd_journal_remote.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Install and configure systemd-journal-remote for remote journal collection + hosts: localhost roles: - role: install_systemd_journal_remote diff --git a/playbooks/install_systemd_timesyncd.yml b/playbooks/install_systemd_timesyncd.yml index ed1a31e..7590645 100644 --- a/playbooks/install_systemd_timesyncd.yml +++ b/playbooks/install_systemd_timesyncd.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Install and configure systemd-timesyncd for NTP time sync + hosts: localhost roles: - role: install_systemd_timesyncd diff --git a/playbooks/install_terraform.yml b/playbooks/install_terraform.yml index 1426378..5a5fa72 100644 --- a/playbooks/install_terraform.yml +++ b/playbooks/install_terraform.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Install Terraform + hosts: localhost roles: - role: install_terraform diff --git a/playbooks/install_vagrant_boxes.yml b/playbooks/install_vagrant_boxes.yml index 8cffb36..01c0728 100644 --- a/playbooks/install_vagrant_boxes.yml +++ b/playbooks/install_vagrant_boxes.yml @@ -1,5 +1,6 @@ --- -- hosts: localhost +- name: install_vagrant_boxes + hosts: localhost tasks: - include_role: name: install_vagrant_boxes diff --git a/playbooks/kdevops_archive.yml b/playbooks/kdevops_archive.yml index a61f794..cbf8dea 100644 --- a/playbooks/kdevops_archive.yml +++ b/playbooks/kdevops_archive.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Archive and push kdevops CI test results + hosts: localhost roles: - role: kdevops_archive diff --git a/playbooks/libvirt_pcie_passthrough.yml b/playbooks/libvirt_pcie_passthrough.yml index 39d5c8e..f128bdd 100644 --- a/playbooks/libvirt_pcie_passthrough.yml +++ b/playbooks/libvirt_pcie_passthrough.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Configure PCIe passthrough for libvirt VMs + hosts: localhost roles: - role: libvirt_pcie_passthrough diff --git a/playbooks/libvirt_storage_pool_create.yml b/playbooks/libvirt_storage_pool_create.yml index f127f5e..8f0d7b0 100644 --- a/playbooks/libvirt_storage_pool_create.yml +++ b/playbooks/libvirt_storage_pool_create.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Create and configure a Libvirt storage pool + hosts: localhost roles: - role: libvirt_storage_pool_create diff --git a/playbooks/libvirt_user.yml b/playbooks/libvirt_user.yml index 6e3889c..7923b05 100644 --- a/playbooks/libvirt_user.yml +++ b/playbooks/libvirt_user.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Allow user to run libvirt guests + hosts: localhost roles: - role: libvirt_user diff --git a/playbooks/linux-mirror.yml b/playbooks/linux-mirror.yml index 0808ebc..2af0f89 100644 --- a/playbooks/linux-mirror.yml +++ b/playbooks/linux-mirror.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Install Git mirrors using systemd.timer + hosts: localhost roles: - role: linux-mirror diff --git a/playbooks/postfix_relay_host.yml b/playbooks/postfix_relay_host.yml index b04079b..c7b3427 100644 --- a/playbooks/postfix_relay_host.yml +++ b/playbooks/postfix_relay_host.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Configure and enable Postfix with a custom relay host + hosts: localhost roles: - role: postfix_relay_host diff --git a/playbooks/update_ssh_config_guestfs.yml b/playbooks/update_ssh_config_guestfs.yml index 346b902..56faed2 100644 --- a/playbooks/update_ssh_config_guestfs.yml +++ b/playbooks/update_ssh_config_guestfs.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: Update OpenSSH client configuration file (libguestfs) + hosts: localhost roles: - role: update_ssh_config_guestfs diff --git a/playbooks/update_ssh_config_vagrant.yml b/playbooks/update_ssh_config_vagrant.yml index c8d0e99..7a2162e 100644 --- a/playbooks/update_ssh_config_vagrant.yml +++ b/playbooks/update_ssh_config_vagrant.yml @@ -1,4 +1,5 @@ --- -- hosts: localhost +- name: update_ssh_config_vagrant + hosts: localhost roles: - role: update_ssh_config_vagrant -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 03/12] Makefile: use long form of limit argument for clarity 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 01/12] playbooks: fix playbook name for all hosts plays Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 02/12] playbooks: fix playbook name for localhost plays Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 04/12] Makefile: print target when debug Daniel Gomez ` (10 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> Replace the short -l argument option with the more explicit --limit in the Makefile for ansible-playbook runs. This improves readability and makes the purpose of the flag clearer. Remove the quotes when using the long form to properly expand LIMIT_HOSTS with the long form. Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c6a5c32..baa4a5c 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ include scripts/ansible.Makefile LIMIT_HOSTS := ifneq (,$(HOSTS)) -LIMIT_HOSTS := '-l $(subst ${space},$(comma),$(HOSTS))' +LIMIT_HOSTS := --limit $(subst ${space},$(comma),$(HOSTS)) endif export LIMIT_TESTS := -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 04/12] Makefile: print target when debug 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (2 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 03/12] Makefile: use long form of limit argument for clarity Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 05/12] .github/workflows/fstests.yml: enable make verbosity Daniel Gomez ` (9 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> When debugging with V=1, print also the Makefile target before the command. This allows to specify the target as well as keep verbosity of the command being executed. The only limitation is that commands are printed in one line. Example: make V=1 ==> [ansible.cfg] + ansible-playbook playbooks/ansible_cfg.yml --extra-vars=@./.extra_vars_auto.yaml [WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are modifying the Ansible engine, or trying out features under development. This is a rapidly changing source of code and can become unstable at any point. PLAY 1: ANSIBLE CONFIGURATION ROLE task 1. [started TASK: Gathering Facts on localhost] task 2. [started TASK: ansible_cfg : Import optional extra_args file on localhost] task 3. [started TASK: ansible_cfg : Generate kdevops ansible.cfg on localhost] ==> [inventory] + ansible-playbook playbooks/gen_hosts.yml --extra-vars=@./extra_vars.yaml {...} Before: make V=1 [WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are modifying the Ansible engine, or trying out features under development. This is a rapidly changing source of code and can become unstable at any point. PLAY 1: ANSIBLE CONFIGURATION ROLE task 1. [started TASK: Gathering Facts on localhost] task 2. [started TASK: ansible_cfg : Import optional extra_args file on localhost] task 3. [started TASK: ansible_cfg : Generate kdevops ansible.cfg on localhost] ansible-playbook \ playbooks/gen_hosts.yml \ --extra-vars=@./extra_vars.yaml [WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are modifying the Ansible engine, or trying out features under development. This is a rapidly changing source of code and can become unstable at any point. PLAY 1: GEN_HOSTS task 1. [started TASK: Gathering Facts on localhost] {...} Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index baa4a5c..5369428 100644 --- a/Makefile +++ b/Makefile @@ -38,8 +38,12 @@ KDEVOPS_DEPCHECK = .kdevops.depcheck PHONY += kconfig-help-menu +define print_target + echo "==> [$1]" +endef + ifeq ($(V),1) -export Q= +export Q=@$(call print_target,$@) && set -x && export NQ=true else export Q=@ -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 05/12] .github/workflows/fstests.yml: enable make verbosity 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (3 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 04/12] Makefile: print target when debug Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 06/12] ansible_cfg: add inventory support Daniel Gomez ` (8 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> This prints the commands as well as the Makefile target being run. Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- .github/workflows/fstests.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/fstests.yml b/.github/workflows/fstests.yml index 5988a86..e13978c 100644 --- a/.github/workflows/fstests.yml +++ b/.github/workflows/fstests.yml @@ -45,23 +45,23 @@ jobs: - name: Run kdevops make run: | - make -j$(nproc) + make V=1 -j$(nproc) - name: Run kdevops make bringup run: | - make bringup + make V=1 bringup - name: Build linux and boot test nodes on test kernel run: | - make linux + make V=1 linux - name: Build fstests run: | - make fstests + make V=1 fstests - name: Run just one fstest to verify we tests and test collection works run: | - make fstests-baseline TESTS=generic/003 + make V=1 fstests-baseline TESTS=generic/003 echo "ok" > ci.result find workflows/fstests/results/last-run -name xunit_results.txt -type f -exec cat {} \; > ci.commit_extra || true if ! grep -E "failures, [1-9]|errors, [1-9]" ci.commit_extra; then @@ -71,7 +71,7 @@ jobs: - name: Get systemd journal files if: always() # This ensures the step runs even if previous steps failed run: | - make journal-dump + make V=1 journal-dump - name: Start SSH Agent if: always() # Ensure this step runs even if previous steps failed @@ -82,7 +82,7 @@ jobs: - name: Build our kdevops archive results if: always() # This ensures the step runs even if previous steps failed run: | - make ci-archive + make V=1 ci-archive - name: Upload our kdevops results archive if: always() # This ensures the step runs even if previous steps failed @@ -95,4 +95,4 @@ jobs: - name: Run kdevops make destroy if: always() # This ensures the step runs even if previous steps failed run: | - make destroy + make V=1 destroy -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 06/12] ansible_cfg: add inventory support 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (4 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 05/12] .github/workflows/fstests.yml: enable make verbosity Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 07/12] gen_hosts: add service group to inventory templates Daniel Gomez ` (7 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> Allow to configure the inventory file (currently via KDEVOPS_HOSTFILE and KDEVOPS_HOSTS) via ansible.cfg. The Ansible inventory file [1][2][3] is used in all kdevops/Makefile ansible-playbook calls. Enable this configuration to the global Ansible configuration file (ansible.cfg) and allow to define the inventory via Kconfig. This will simplify the playbook invocation. [1] https://docs.ansible.com/ansible/latest/reference_appendices/ config.html#default-host-list [2] https://docs.ansible.com/ansible/latest/cli/ ansible-inventory.html#cmdoption-ansible-inventory-i [3] https://docs.ansible.com/ansible/latest/reference_appendices/ config.html#envvar-ANSIBLE_INVENTORY This has no effect yet, as all ansible-playbook calls currently specify the --inventory (-i) argument. The next commits will clean up the code and allow the inventory defined in ansible.cfg to take effect. Keep the ANSIBLE_CFG_ prefix to refer to the kdevops Ansible configuration module. This isn't part of the Ansible config file, but rather of the kdevops module that configures Ansible. Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- kconfigs/Kconfig.ansible_cfg | 18 ++++++++++++++++++ kconfigs/Kconfig.ansible_provisioning | 8 +------- playbooks/roles/ansible_cfg/templates/ansible.cfg.j2 | 1 + scripts/lib.sh | 2 +- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/kconfigs/Kconfig.ansible_cfg b/kconfigs/Kconfig.ansible_cfg index a8b6cef..735160c 100644 --- a/kconfigs/Kconfig.ansible_cfg +++ b/kconfigs/Kconfig.ansible_cfg @@ -224,6 +224,24 @@ config ANSIBLE_CFG_TASK_DEBUGGER https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_debugger.html#id10 +config ANSIBLE_CFG_INVENTORY + string "Ansible inventory sources" + output yaml + default "$(TOPDIR_PATH)/hosts" + help + Comma-separated list of Ansible inventory source paths. + + This is mapped to the [defaults] section of the Ansible configuration + file (ansible.cfg): + inventory = <value> + + Each entry can be a path to an inventory file or directory, + such as: + /path/to/hosts,/path/to/inventory_dir + + For more details, refer to the Ansible documentation: + https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default-host-list + if DISTRO_OPENSUSE config ANSIBLE_CFG_RECONNECTION_RETRIES diff --git a/kconfigs/Kconfig.ansible_provisioning b/kconfigs/Kconfig.ansible_provisioning index 63f0430..194b0b3 100644 --- a/kconfigs/Kconfig.ansible_provisioning +++ b/kconfigs/Kconfig.ansible_provisioning @@ -13,7 +13,7 @@ config KDEVOPS_ANSIBLE_PROVISION_ENABLE help If enabled we will provision the target hosts with ansible as a last last step after bringup. This playbook used to provision is - configurable refer to CONFIG_KDEVOPS_ANSIBLE_INVENTORY_FILE. + configurable refer to CONFIG_ANSIBLE_CFG_INVENTORY. if KDEVOPS_ANSIBLE_PROVISION_ENABLE @@ -98,12 +98,6 @@ config KDEVOPS_DEVCONFIG_SYSTEMD_WATCHDOG_TIMEOUT_KEXEC endif # KDEVOPS_DEVCONFIG_ENABLE_SYSTEMD_WATCHDOG -config KDEVOPS_ANSIBLE_INVENTORY_FILE - string "The ansible inventory file to use" - default $(shell, scripts/append-makefile-vars.sh $(KDEVOPS_HOSTFILE)) - help - The file to use for the ansible inventory. - config HAVE_DISTRO_PREFERS_ANSIBLE_PYTHON2 bool default n diff --git a/playbooks/roles/ansible_cfg/templates/ansible.cfg.j2 b/playbooks/roles/ansible_cfg/templates/ansible.cfg.j2 index f71033b..e968bb3 100644 --- a/playbooks/roles/ansible_cfg/templates/ansible.cfg.j2 +++ b/playbooks/roles/ansible_cfg/templates/ansible.cfg.j2 @@ -11,6 +11,7 @@ show_task_path_on_failure = {{ ansible_cfg_callback_plugin_show_task_path_on_fai interpreter_python = {{ ansible_cfg_interpreter_python_string }} forks = {{ ansible_cfg_forks }} enable_task_debugger = {{ ansible_cfg_task_debugger }} +inventory = {{ ansible_cfg_inventory }} {% if ansible_facts['distribution'] == 'openSUSE' %} [connection] retries = {{ ansible_cfg_reconnection_retries }} diff --git a/scripts/lib.sh b/scripts/lib.sh index 936e3ce..0419fd3 100644 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -1,7 +1,7 @@ # SPDX-License-Identifier: copyleft-next-0.3.1 PLAYBOOKDIR=$CONFIG_KDEVOPS_PLAYBOOK_DIR -INVENTORY=$CONFIG_KDEVOPS_ANSIBLE_INVENTORY_FILE +INVENTORY=$CONFIG_ANSIBLE_CFG_INVENTORY export KDEVOPSHOSTSPREFIX=$CONFIG_KDEVOPS_HOSTS_PREFIX MANUAL_KILL_NOTICE_FILE="${TOPDIR}/.running_kill_pids.sh" -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 07/12] gen_hosts: add service group to inventory templates 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (5 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 06/12] ansible_cfg: add inventory support Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:51 ` Luis Chamberlain 2025-07-24 20:02 ` Chuck Lever 2025-07-24 19:36 ` [PATCH v5 08/12] gen_hosts: templates: include localhost in the all group Daniel Gomez ` (6 subsequent siblings) 13 siblings, 2 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> Introduce a new 'service' group in all inventory templates that includes service hosts (iscsi, nfsd, smbd, kdc). This provides a convenient way to target all service hosts collectively for operations like guestfs bringup and SSH configuration. The service group includes: - iscsi hosts (when kdevops_enable_iscsi is enabled) - nfsd hosts (when kdevops_nfsd_enable is enabled) - smbd hosts (when kdevops_smbd_enable is enabled) - kdc hosts (when kdevops_krb5_enable is enabled) This addresses issues where operations limited to 'baseline:dev' would miss required service hosts, causing workflow failures. Generated-by: Claude AI Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- playbooks/roles/gen_hosts/templates/fstests.j2 | 15 +++++++++++++++ playbooks/roles/gen_hosts/templates/gitr.j2 | 9 +++++++++ playbooks/roles/gen_hosts/templates/hosts.j2 | 9 +++++++++ playbooks/roles/gen_hosts/templates/nfstest.j2 | 9 +++++++++ playbooks/roles/gen_hosts/templates/pynfs.j2 | 7 +++++++ 5 files changed, 49 insertions(+) diff --git a/playbooks/roles/gen_hosts/templates/fstests.j2 b/playbooks/roles/gen_hosts/templates/fstests.j2 index abcdafd..a489c12 100644 --- a/playbooks/roles/gen_hosts/templates/fstests.j2 +++ b/playbooks/roles/gen_hosts/templates/fstests.j2 @@ -69,3 +69,18 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" [krb5:vars] ansible_python_interpreter = "{{ kdevops_python_interpreter }}" {% endif %} +[service] +{% if kdevops_enable_iscsi %} +{{ kdevops_hosts_prefix }}-iscsi +{% endif %} +{% if kdevops_nfsd_enable %} +{{ kdevops_hosts_prefix }}-nfsd +{% endif %} +{% if kdevops_smbd_enable %} +{{ kdevops_hosts_prefix }}-smbd +{% endif %} +{% if kdevops_krb5_enable %} +{{ kdevops_hosts_prefix }}-kdc +{% endif %} +[service:vars] +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" diff --git a/playbooks/roles/gen_hosts/templates/gitr.j2 b/playbooks/roles/gen_hosts/templates/gitr.j2 index b8f393d..41aee2b 100644 --- a/playbooks/roles/gen_hosts/templates/gitr.j2 +++ b/playbooks/roles/gen_hosts/templates/gitr.j2 @@ -37,3 +37,12 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" [nfsd:vars] ansible_python_interpreter = "{{ kdevops_python_interpreter }}" {% endif %} +[service] +{% if kdevops_enable_iscsi %} +{{ kdevops_hosts_prefix }}-iscsi +{% endif %} +{% if kdevops_nfsd_enable %} +{{ kdevops_hosts_prefix }}-nfsd +{% endif %} +[service:vars] +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" diff --git a/playbooks/roles/gen_hosts/templates/hosts.j2 b/playbooks/roles/gen_hosts/templates/hosts.j2 index 5032f59..639f5a4 100644 --- a/playbooks/roles/gen_hosts/templates/hosts.j2 +++ b/playbooks/roles/gen_hosts/templates/hosts.j2 @@ -44,4 +44,13 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" [nfsd:vars] ansible_python_interpreter = "{{ kdevops_python_interpreter }}" {% endif %} +[service] +{% if kdevops_enable_iscsi %} +{{ kdevops_hosts_prefix }}-iscsi +{% endif %} +{% if kdevops_nfsd_enable %} +{{ kdevops_hosts_prefix }}-nfsd +{% endif %} +[service:vars] +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" {% endif %} diff --git a/playbooks/roles/gen_hosts/templates/nfstest.j2 b/playbooks/roles/gen_hosts/templates/nfstest.j2 index 6a0d6cd..fb47471 100644 --- a/playbooks/roles/gen_hosts/templates/nfstest.j2 +++ b/playbooks/roles/gen_hosts/templates/nfstest.j2 @@ -37,3 +37,12 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" [nfsd:vars] ansible_python_interpreter = "{{ kdevops_python_interpreter }}" {% endif %} +[service] +{% if kdevops_enable_iscsi %} +{{ kdevops_hosts_prefix }}-iscsi +{% endif %} +{% if kdevops_nfsd_enable %} +{{ kdevops_hosts_prefix }}-nfsd +{% endif %} +[service:vars] +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" diff --git a/playbooks/roles/gen_hosts/templates/pynfs.j2 b/playbooks/roles/gen_hosts/templates/pynfs.j2 index c018c54..cac6fc6 100644 --- a/playbooks/roles/gen_hosts/templates/pynfs.j2 +++ b/playbooks/roles/gen_hosts/templates/pynfs.j2 @@ -22,3 +22,10 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" {{ kdevops_hosts_prefix }}-nfsd [nfsd:vars] ansible_python_interpreter = "{{ kdevops_python_interpreter }}" +[service] +{% if kdevops_enable_iscsi %} +{{ kdevops_hosts_prefix }}-iscsi +{% endif %} +{{ kdevops_hosts_prefix }}-nfsd +[service:vars] +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v5 07/12] gen_hosts: add service group to inventory templates 2025-07-24 19:36 ` [PATCH v5 07/12] gen_hosts: add service group to inventory templates Daniel Gomez @ 2025-07-24 19:51 ` Luis Chamberlain 2025-07-25 8:13 ` Daniel Gomez 2025-07-24 20:02 ` Chuck Lever 1 sibling, 1 reply; 20+ messages in thread From: Luis Chamberlain @ 2025-07-24 19:51 UTC (permalink / raw) To: Daniel Gomez; +Cc: Chuck Lever, kdevops, Daniel Gomez On Thu, Jul 24, 2025 at 09:36:13PM +0200, Daniel Gomez wrote: > From: Daniel Gomez <da.gomez@samsung.com> > > Introduce a new 'service' group in all inventory templates that includes > service hosts (iscsi, nfsd, smbd, kdc). This provides a convenient way > to target all service hosts collectively for operations like guestfs > bringup and SSH configuration. > > The service group includes: > - iscsi hosts (when kdevops_enable_iscsi is enabled) > - nfsd hosts (when kdevops_nfsd_enable is enabled) > - smbd hosts (when kdevops_smbd_enable is enabled) > - kdc hosts (when kdevops_krb5_enable is enabled) > > This addresses issues where operations limited to 'baseline:dev' would > miss required service hosts, causing workflow failures. > > Generated-by: Claude AI No newline needed > > Signed-off-by: Daniel Gomez <da.gomez@samsung.com> Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Luis ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v5 07/12] gen_hosts: add service group to inventory templates 2025-07-24 19:51 ` Luis Chamberlain @ 2025-07-25 8:13 ` Daniel Gomez 0 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-25 8:13 UTC (permalink / raw) To: Luis Chamberlain; +Cc: Chuck Lever, kdevops, Daniel Gomez On 24/07/2025 21.51, Luis Chamberlain wrote: > On Thu, Jul 24, 2025 at 09:36:13PM +0200, Daniel Gomez wrote: >> From: Daniel Gomez <da.gomez@samsung.com> >> >> Introduce a new 'service' group in all inventory templates that includes >> service hosts (iscsi, nfsd, smbd, kdc). This provides a convenient way >> to target all service hosts collectively for operations like guestfs >> bringup and SSH configuration. >> >> The service group includes: >> - iscsi hosts (when kdevops_enable_iscsi is enabled) >> - nfsd hosts (when kdevops_nfsd_enable is enabled) >> - smbd hosts (when kdevops_smbd_enable is enabled) >> - kdc hosts (when kdevops_krb5_enable is enabled) >> >> This addresses issues where operations limited to 'baseline:dev' would >> miss required service hosts, causing workflow failures. >> >> Generated-by: Claude AI > > No newline needed Making sure I'm not adding this line this time... >> >> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> > > Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Thanks! > > Luis ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v5 07/12] gen_hosts: add service group to inventory templates 2025-07-24 19:36 ` [PATCH v5 07/12] gen_hosts: add service group to inventory templates Daniel Gomez 2025-07-24 19:51 ` Luis Chamberlain @ 2025-07-24 20:02 ` Chuck Lever 2025-07-25 8:36 ` Daniel Gomez 1 sibling, 1 reply; 20+ messages in thread From: Chuck Lever @ 2025-07-24 20:02 UTC (permalink / raw) To: Daniel Gomez, Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Jeff Layton On 7/24/25 3:36 PM, Daniel Gomez wrote: > From: Daniel Gomez <da.gomez@samsung.com> > > Introduce a new 'service' group in all inventory templates that includes > service hosts (iscsi, nfsd, smbd, kdc). This provides a convenient way > to target all service hosts collectively for operations like guestfs > bringup and SSH configuration. > > The service group includes: > - iscsi hosts (when kdevops_enable_iscsi is enabled) > - nfsd hosts (when kdevops_nfsd_enable is enabled) > - smbd hosts (when kdevops_smbd_enable is enabled) > - kdc hosts (when kdevops_krb5_enable is enabled) > > This addresses issues where operations limited to 'baseline:dev' would > miss required service hosts, causing workflow failures. > > Generated-by: Claude AI > > Signed-off-by: Daniel Gomez <da.gomez@samsung.com> > --- > playbooks/roles/gen_hosts/templates/fstests.j2 | 15 +++++++++++++++ > playbooks/roles/gen_hosts/templates/gitr.j2 | 9 +++++++++ > playbooks/roles/gen_hosts/templates/hosts.j2 | 9 +++++++++ > playbooks/roles/gen_hosts/templates/nfstest.j2 | 9 +++++++++ > playbooks/roles/gen_hosts/templates/pynfs.j2 | 7 +++++++ > 5 files changed, 49 insertions(+) > > diff --git a/playbooks/roles/gen_hosts/templates/fstests.j2 b/playbooks/roles/gen_hosts/templates/fstests.j2 > index abcdafd..a489c12 100644 > --- a/playbooks/roles/gen_hosts/templates/fstests.j2 > +++ b/playbooks/roles/gen_hosts/templates/fstests.j2 > @@ -69,3 +69,18 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > [krb5:vars] > ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > {% endif %} > +[service] > +{% if kdevops_enable_iscsi %} > +{{ kdevops_hosts_prefix }}-iscsi > +{% endif %} > +{% if kdevops_nfsd_enable %} > +{{ kdevops_hosts_prefix }}-nfsd > +{% endif %} > +{% if kdevops_smbd_enable %} > +{{ kdevops_hosts_prefix }}-smbd > +{% endif %} > +{% if kdevops_krb5_enable %} > +{{ kdevops_hosts_prefix }}-kdc > +{% endif %} > +[service:vars] > +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > diff --git a/playbooks/roles/gen_hosts/templates/gitr.j2 b/playbooks/roles/gen_hosts/templates/gitr.j2 > index b8f393d..41aee2b 100644 > --- a/playbooks/roles/gen_hosts/templates/gitr.j2 > +++ b/playbooks/roles/gen_hosts/templates/gitr.j2 > @@ -37,3 +37,12 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > [nfsd:vars] > ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > {% endif %} > +[service] > +{% if kdevops_enable_iscsi %} > +{{ kdevops_hosts_prefix }}-iscsi > +{% endif %} > +{% if kdevops_nfsd_enable %} > +{{ kdevops_hosts_prefix }}-nfsd > +{% endif %} > +[service:vars] > +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > diff --git a/playbooks/roles/gen_hosts/templates/hosts.j2 b/playbooks/roles/gen_hosts/templates/hosts.j2 > index 5032f59..639f5a4 100644 > --- a/playbooks/roles/gen_hosts/templates/hosts.j2 > +++ b/playbooks/roles/gen_hosts/templates/hosts.j2 > @@ -44,4 +44,13 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > [nfsd:vars] > ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > {% endif %} > +[service] > +{% if kdevops_enable_iscsi %} > +{{ kdevops_hosts_prefix }}-iscsi > +{% endif %} > +{% if kdevops_nfsd_enable %} > +{{ kdevops_hosts_prefix }}-nfsd > +{% endif %} > +[service:vars] > +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > {% endif %} > diff --git a/playbooks/roles/gen_hosts/templates/nfstest.j2 b/playbooks/roles/gen_hosts/templates/nfstest.j2 > index 6a0d6cd..fb47471 100644 > --- a/playbooks/roles/gen_hosts/templates/nfstest.j2 > +++ b/playbooks/roles/gen_hosts/templates/nfstest.j2 > @@ -37,3 +37,12 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > [nfsd:vars] > ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > {% endif %} > +[service] > +{% if kdevops_enable_iscsi %} > +{{ kdevops_hosts_prefix }}-iscsi > +{% endif %} > +{% if kdevops_nfsd_enable %} > +{{ kdevops_hosts_prefix }}-nfsd > +{% endif %} > +[service:vars] > +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > diff --git a/playbooks/roles/gen_hosts/templates/pynfs.j2 b/playbooks/roles/gen_hosts/templates/pynfs.j2 > index c018c54..cac6fc6 100644 > --- a/playbooks/roles/gen_hosts/templates/pynfs.j2 > +++ b/playbooks/roles/gen_hosts/templates/pynfs.j2 > @@ -22,3 +22,10 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > {{ kdevops_hosts_prefix }}-nfsd > [nfsd:vars] > ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > +[service] > +{% if kdevops_enable_iscsi %} > +{{ kdevops_hosts_prefix }}-iscsi > +{% endif %} > +{{ kdevops_hosts_prefix }}-nfsd > +[service:vars] > +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" > The issue with the pynfs workflow is that the "nfsd" host is also where the tests run. I think what you're doing is adding that host into both the test-runners group and the new "service" group, which is probably OK. Would it be better if the pynfs workflow created a separate test runner and nfsd host? Or even two test runners, one for NFSv4.0 and one for NFSv4.1 ? That way the pynfs workflow would operate like the others. Just a random thought, not an objection. -- Chuck Lever ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v5 07/12] gen_hosts: add service group to inventory templates 2025-07-24 20:02 ` Chuck Lever @ 2025-07-25 8:36 ` Daniel Gomez 2025-07-25 14:00 ` Chuck Lever 0 siblings, 1 reply; 20+ messages in thread From: Daniel Gomez @ 2025-07-25 8:36 UTC (permalink / raw) To: Chuck Lever, Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Jeff Layton On 24/07/2025 22.02, Chuck Lever wrote: > On 7/24/25 3:36 PM, Daniel Gomez wrote: >> From: Daniel Gomez <da.gomez@samsung.com> >> >> Introduce a new 'service' group in all inventory templates that includes >> service hosts (iscsi, nfsd, smbd, kdc). This provides a convenient way >> to target all service hosts collectively for operations like guestfs >> bringup and SSH configuration. >> >> The service group includes: >> - iscsi hosts (when kdevops_enable_iscsi is enabled) >> - nfsd hosts (when kdevops_nfsd_enable is enabled) >> - smbd hosts (when kdevops_smbd_enable is enabled) >> - kdc hosts (when kdevops_krb5_enable is enabled) >> >> This addresses issues where operations limited to 'baseline:dev' would >> miss required service hosts, causing workflow failures. >> >> Generated-by: Claude AI >> >> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> >> --- >> playbooks/roles/gen_hosts/templates/fstests.j2 | 15 +++++++++++++++ >> playbooks/roles/gen_hosts/templates/gitr.j2 | 9 +++++++++ >> playbooks/roles/gen_hosts/templates/hosts.j2 | 9 +++++++++ >> playbooks/roles/gen_hosts/templates/nfstest.j2 | 9 +++++++++ >> playbooks/roles/gen_hosts/templates/pynfs.j2 | 7 +++++++ >> 5 files changed, 49 insertions(+) >> >> diff --git a/playbooks/roles/gen_hosts/templates/fstests.j2 b/playbooks/roles/gen_hosts/templates/fstests.j2 >> index abcdafd..a489c12 100644 >> --- a/playbooks/roles/gen_hosts/templates/fstests.j2 >> +++ b/playbooks/roles/gen_hosts/templates/fstests.j2 >> @@ -69,3 +69,18 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> [krb5:vars] >> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> {% endif %} >> +[service] >> +{% if kdevops_enable_iscsi %} >> +{{ kdevops_hosts_prefix }}-iscsi >> +{% endif %} >> +{% if kdevops_nfsd_enable %} >> +{{ kdevops_hosts_prefix }}-nfsd >> +{% endif %} >> +{% if kdevops_smbd_enable %} >> +{{ kdevops_hosts_prefix }}-smbd >> +{% endif %} >> +{% if kdevops_krb5_enable %} >> +{{ kdevops_hosts_prefix }}-kdc >> +{% endif %} >> +[service:vars] >> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> diff --git a/playbooks/roles/gen_hosts/templates/gitr.j2 b/playbooks/roles/gen_hosts/templates/gitr.j2 >> index b8f393d..41aee2b 100644 >> --- a/playbooks/roles/gen_hosts/templates/gitr.j2 >> +++ b/playbooks/roles/gen_hosts/templates/gitr.j2 >> @@ -37,3 +37,12 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> [nfsd:vars] >> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> {% endif %} >> +[service] >> +{% if kdevops_enable_iscsi %} >> +{{ kdevops_hosts_prefix }}-iscsi >> +{% endif %} >> +{% if kdevops_nfsd_enable %} >> +{{ kdevops_hosts_prefix }}-nfsd >> +{% endif %} >> +[service:vars] >> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> diff --git a/playbooks/roles/gen_hosts/templates/hosts.j2 b/playbooks/roles/gen_hosts/templates/hosts.j2 >> index 5032f59..639f5a4 100644 >> --- a/playbooks/roles/gen_hosts/templates/hosts.j2 >> +++ b/playbooks/roles/gen_hosts/templates/hosts.j2 >> @@ -44,4 +44,13 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> [nfsd:vars] >> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> {% endif %} >> +[service] >> +{% if kdevops_enable_iscsi %} >> +{{ kdevops_hosts_prefix }}-iscsi >> +{% endif %} >> +{% if kdevops_nfsd_enable %} >> +{{ kdevops_hosts_prefix }}-nfsd >> +{% endif %} >> +[service:vars] >> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> {% endif %} >> diff --git a/playbooks/roles/gen_hosts/templates/nfstest.j2 b/playbooks/roles/gen_hosts/templates/nfstest.j2 >> index 6a0d6cd..fb47471 100644 >> --- a/playbooks/roles/gen_hosts/templates/nfstest.j2 >> +++ b/playbooks/roles/gen_hosts/templates/nfstest.j2 >> @@ -37,3 +37,12 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> [nfsd:vars] >> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> {% endif %} >> +[service] >> +{% if kdevops_enable_iscsi %} >> +{{ kdevops_hosts_prefix }}-iscsi >> +{% endif %} >> +{% if kdevops_nfsd_enable %} >> +{{ kdevops_hosts_prefix }}-nfsd >> +{% endif %} >> +[service:vars] >> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> diff --git a/playbooks/roles/gen_hosts/templates/pynfs.j2 b/playbooks/roles/gen_hosts/templates/pynfs.j2 >> index c018c54..cac6fc6 100644 >> --- a/playbooks/roles/gen_hosts/templates/pynfs.j2 >> +++ b/playbooks/roles/gen_hosts/templates/pynfs.j2 >> @@ -22,3 +22,10 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> {{ kdevops_hosts_prefix }}-nfsd >> [nfsd:vars] >> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> +[service] >> +{% if kdevops_enable_iscsi %} >> +{{ kdevops_hosts_prefix }}-iscsi >> +{% endif %} >> +{{ kdevops_hosts_prefix }}-nfsd >> +[service:vars] >> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >> > > The issue with the pynfs workflow is that the "nfsd" host is also where > the tests run. I think what you're doing is adding that host into both > the test-runners group and the new "service" group, which is probably > OK. That is correct. > > Would it be better if the pynfs workflow created a separate test runner > and nfsd host? Or even two test runners, one for NFSv4.0 and one for > NFSv4.1 ? That way the pynfs workflow would operate like the others. You mean like in fstests, right? FSTESTS_NFS_SECTION_V42 FSTESTS_NFS_SECTION_V41 FSTESTS_NFS_SECTION_V40 I agree pynfs is not consistent with the rest of the workflows. But I'm not familiar with pynfs to agree if your suggestion make sense. Can you clarify if your suggestion means having 2 kdevops profiles (i.e. 2 separate guests/vms) with NFSv4.0 and NFS4.1 with both the option to run CONFIG_PYNFS_PNFS_BLOCK or not. How is it done now? Does the test switch between NFS versions or uses 2 different NFS mount points to run the pynfs suite tests on them? Would nfsd guest support both new vms? > > Just a random thought, not an objection. Would you agree to do this separately? ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v5 07/12] gen_hosts: add service group to inventory templates 2025-07-25 8:36 ` Daniel Gomez @ 2025-07-25 14:00 ` Chuck Lever 0 siblings, 0 replies; 20+ messages in thread From: Chuck Lever @ 2025-07-25 14:00 UTC (permalink / raw) To: Daniel Gomez, Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Jeff Layton On 7/25/25 4:36 AM, Daniel Gomez wrote: > > > On 24/07/2025 22.02, Chuck Lever wrote: >> On 7/24/25 3:36 PM, Daniel Gomez wrote: >>> From: Daniel Gomez <da.gomez@samsung.com> >>> >>> Introduce a new 'service' group in all inventory templates that includes >>> service hosts (iscsi, nfsd, smbd, kdc). This provides a convenient way >>> to target all service hosts collectively for operations like guestfs >>> bringup and SSH configuration. >>> >>> The service group includes: >>> - iscsi hosts (when kdevops_enable_iscsi is enabled) >>> - nfsd hosts (when kdevops_nfsd_enable is enabled) >>> - smbd hosts (when kdevops_smbd_enable is enabled) >>> - kdc hosts (when kdevops_krb5_enable is enabled) >>> >>> This addresses issues where operations limited to 'baseline:dev' would >>> miss required service hosts, causing workflow failures. >>> >>> Generated-by: Claude AI >>> >>> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> >>> --- >>> playbooks/roles/gen_hosts/templates/fstests.j2 | 15 +++++++++++++++ >>> playbooks/roles/gen_hosts/templates/gitr.j2 | 9 +++++++++ >>> playbooks/roles/gen_hosts/templates/hosts.j2 | 9 +++++++++ >>> playbooks/roles/gen_hosts/templates/nfstest.j2 | 9 +++++++++ >>> playbooks/roles/gen_hosts/templates/pynfs.j2 | 7 +++++++ >>> 5 files changed, 49 insertions(+) >>> >>> diff --git a/playbooks/roles/gen_hosts/templates/fstests.j2 b/playbooks/roles/gen_hosts/templates/fstests.j2 >>> index abcdafd..a489c12 100644 >>> --- a/playbooks/roles/gen_hosts/templates/fstests.j2 >>> +++ b/playbooks/roles/gen_hosts/templates/fstests.j2 >>> @@ -69,3 +69,18 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> [krb5:vars] >>> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> {% endif %} >>> +[service] >>> +{% if kdevops_enable_iscsi %} >>> +{{ kdevops_hosts_prefix }}-iscsi >>> +{% endif %} >>> +{% if kdevops_nfsd_enable %} >>> +{{ kdevops_hosts_prefix }}-nfsd >>> +{% endif %} >>> +{% if kdevops_smbd_enable %} >>> +{{ kdevops_hosts_prefix }}-smbd >>> +{% endif %} >>> +{% if kdevops_krb5_enable %} >>> +{{ kdevops_hosts_prefix }}-kdc >>> +{% endif %} >>> +[service:vars] >>> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> diff --git a/playbooks/roles/gen_hosts/templates/gitr.j2 b/playbooks/roles/gen_hosts/templates/gitr.j2 >>> index b8f393d..41aee2b 100644 >>> --- a/playbooks/roles/gen_hosts/templates/gitr.j2 >>> +++ b/playbooks/roles/gen_hosts/templates/gitr.j2 >>> @@ -37,3 +37,12 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> [nfsd:vars] >>> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> {% endif %} >>> +[service] >>> +{% if kdevops_enable_iscsi %} >>> +{{ kdevops_hosts_prefix }}-iscsi >>> +{% endif %} >>> +{% if kdevops_nfsd_enable %} >>> +{{ kdevops_hosts_prefix }}-nfsd >>> +{% endif %} >>> +[service:vars] >>> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> diff --git a/playbooks/roles/gen_hosts/templates/hosts.j2 b/playbooks/roles/gen_hosts/templates/hosts.j2 >>> index 5032f59..639f5a4 100644 >>> --- a/playbooks/roles/gen_hosts/templates/hosts.j2 >>> +++ b/playbooks/roles/gen_hosts/templates/hosts.j2 >>> @@ -44,4 +44,13 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> [nfsd:vars] >>> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> {% endif %} >>> +[service] >>> +{% if kdevops_enable_iscsi %} >>> +{{ kdevops_hosts_prefix }}-iscsi >>> +{% endif %} >>> +{% if kdevops_nfsd_enable %} >>> +{{ kdevops_hosts_prefix }}-nfsd >>> +{% endif %} >>> +[service:vars] >>> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> {% endif %} >>> diff --git a/playbooks/roles/gen_hosts/templates/nfstest.j2 b/playbooks/roles/gen_hosts/templates/nfstest.j2 >>> index 6a0d6cd..fb47471 100644 >>> --- a/playbooks/roles/gen_hosts/templates/nfstest.j2 >>> +++ b/playbooks/roles/gen_hosts/templates/nfstest.j2 >>> @@ -37,3 +37,12 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> [nfsd:vars] >>> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> {% endif %} >>> +[service] >>> +{% if kdevops_enable_iscsi %} >>> +{{ kdevops_hosts_prefix }}-iscsi >>> +{% endif %} >>> +{% if kdevops_nfsd_enable %} >>> +{{ kdevops_hosts_prefix }}-nfsd >>> +{% endif %} >>> +[service:vars] >>> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> diff --git a/playbooks/roles/gen_hosts/templates/pynfs.j2 b/playbooks/roles/gen_hosts/templates/pynfs.j2 >>> index c018c54..cac6fc6 100644 >>> --- a/playbooks/roles/gen_hosts/templates/pynfs.j2 >>> +++ b/playbooks/roles/gen_hosts/templates/pynfs.j2 >>> @@ -22,3 +22,10 @@ ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> {{ kdevops_hosts_prefix }}-nfsd >>> [nfsd:vars] >>> ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> +[service] >>> +{% if kdevops_enable_iscsi %} >>> +{{ kdevops_hosts_prefix }}-iscsi >>> +{% endif %} >>> +{{ kdevops_hosts_prefix }}-nfsd >>> +[service:vars] >>> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" >>> >> >> The issue with the pynfs workflow is that the "nfsd" host is also where >> the tests run. I think what you're doing is adding that host into both >> the test-runners group and the new "service" group, which is probably >> OK. > > That is correct. > >> >> Would it be better if the pynfs workflow created a separate test runner >> and nfsd host? Or even two test runners, one for NFSv4.0 and one for >> NFSv4.1 ? That way the pynfs workflow would operate like the others. > > You mean like in fstests, right? > FSTESTS_NFS_SECTION_V42 > FSTESTS_NFS_SECTION_V41 > FSTESTS_NFS_SECTION_V40 Yes. > I agree pynfs is not consistent with the rest of the workflows. But I'm not > familiar with pynfs to agree if your suggestion make sense. Can you clarify if > your suggestion means having 2 kdevops profiles (i.e. 2 separate guests/vms) > with NFSv4.0 and NFS4.1 with both the option to run CONFIG_PYNFS_PNFS_BLOCK > or not. How is it done now? Does the test switch between NFS versions or uses > 2 different NFS mount points to run the pynfs suite tests on them? Would nfsd > guest support both new vms? The way the NFS-related workflows do it is the workflow creates one NFS export for each test runner (section). What pynfs doesn't do is create separate clients for each NFS version (section). So here, one test runner would run the NFSv4.0 tests, and mount its own NFS export. A second test runner would run the NFSv4.1 tests, and mount its own NFS export. The pNFS block switch enables a few extra tests in the NFSv4.1 script, and it requires the NFS server to be set up with iSCSI, etc. Yes, we could create a separate client test runner for that, I need to think about it. >> Just a random thought, not an objection. > > Would you agree to do this separately? Yes, absolutely. -- Chuck Lever ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 08/12] gen_hosts: templates: include localhost in the all group 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (6 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 07/12] gen_hosts: add service group to inventory templates Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 09/12] Makefile: use inventory from ansible.cfg Daniel Gomez ` (5 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> This change redefines the Ansible inventory 'all' pattern to include the controller host (localhost), which was previously excluded. Until now, the generated inventory (typically at $TOPDIR_PATH/hosts) only listed the target nodes, omitting the controller. As a result, playbooks that needed to operate on the controller node had to explicitly define localhost as a target with a specific connection. By including localhost in the inventory, we simplify Ansible usage (in the following commits) by removing the need to pass localhost-specific overrides on the command line. Kdevops can now let Ansible consistently operate on all relevant nodes defined in the inventory. Playbooks are also updated to limit the hosts pattern to baseline and dev groups instead of using all, ensuring that tasks are correctly scoped as expected by kdevops. Finally, update ueh_hosts in the update_etc_hosts role to include only the hosts targeted in the current play, rather than all hosts in the inventory. This avoids the error below when the inventory includes localhost in the all group: "The task includes an option with an undefined variable. The error was: 'ansible.vars.hostvars.HostVarsVars object' has no attribute 'ansible_all_ipv4_addresses'. 'ansible.vars.hostvars.HostVarsVars object' has no attribute 'ansible_all_ipv4_addresses'" [1] https://docs.ansible.com/ansible/latest/inventory_guide/ intro_patterns.html#common-patterns Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- playbooks/blktests.yml | 2 +- playbooks/common.yml | 2 +- playbooks/create_data_partition.yml | 2 +- playbooks/cxl.yml | 2 +- playbooks/devconfig.yml | 2 +- playbooks/fstests.yml | 2 +- playbooks/gitr.yml | 2 +- playbooks/iscsi.yml | 2 +- playbooks/kdc.yml | 2 +- playbooks/krb5.yml | 2 +- playbooks/ktls.yml | 2 +- playbooks/ltp.yml | 2 +- playbooks/nfsd.yml | 2 +- playbooks/nfstest.yml | 2 +- playbooks/pkg.yml | 2 +- playbooks/pynfs.yml | 2 +- playbooks/reboot-limit.yml | 2 +- playbooks/roles/common/README.md | 2 +- playbooks/roles/devconfig/README.md | 2 +- playbooks/roles/gen_hosts/templates/blktests.j2 | 1 + playbooks/roles/gen_hosts/templates/cxl.j2 | 1 + playbooks/roles/gen_hosts/templates/fstests.j2 | 1 + playbooks/roles/gen_hosts/templates/gitr.j2 | 1 + playbooks/roles/gen_hosts/templates/hosts.j2 | 2 ++ playbooks/roles/gen_hosts/templates/ltp.j2 | 1 + playbooks/roles/gen_hosts/templates/nfstest.j2 | 1 + playbooks/roles/gen_hosts/templates/pynfs.j2 | 1 + playbooks/roles/gen_hosts/templates/selftests.j2 | 1 + playbooks/roles/gen_hosts/templates/sysbench.j2 | 1 + playbooks/roles/pkg/README.md | 2 +- playbooks/roles/update_etc_hosts/tasks/main.yml | 2 +- playbooks/rxe.yml | 2 +- playbooks/selftests.yml | 2 +- playbooks/siw.yml | 2 +- playbooks/smbd.yml | 2 +- playbooks/terraform.yml | 5 ++--- playbooks/update_etc_hosts.yml | 2 +- scripts/devconfig.Makefile | 4 ++-- scripts/guestfs.Makefile | 2 +- workflows/linux/Makefile | 2 +- 40 files changed, 43 insertions(+), 33 deletions(-) diff --git a/playbooks/blktests.yml b/playbooks/blktests.yml index db58d43..9285e8e 100644 --- a/playbooks/blktests.yml +++ b/playbooks/blktests.yml @@ -1,5 +1,5 @@ --- - name: Configure and run the block layer testing workflow - hosts: all + hosts: baseline:dev roles: - role: blktests diff --git a/playbooks/common.yml b/playbooks/common.yml index d49e7d0..45b106d 100644 --- a/playbooks/common.yml +++ b/playbooks/common.yml @@ -1,5 +1,5 @@ --- - name: Common tasks - hosts: all + hosts: baseline:dev roles: - role: common diff --git a/playbooks/create_data_partition.yml b/playbooks/create_data_partition.yml index fa92567..b180cf4 100644 --- a/playbooks/create_data_partition.yml +++ b/playbooks/create_data_partition.yml @@ -1,5 +1,5 @@ --- - name: Create Directory Data Path (e.g. /data partition) - hosts: all + hosts: baseline:dev roles: - role: create_data_partition diff --git a/playbooks/cxl.yml b/playbooks/cxl.yml index 65277d4..8880ee7 100644 --- a/playbooks/cxl.yml +++ b/playbooks/cxl.yml @@ -1,5 +1,5 @@ --- - name: cxl - hosts: all + hosts: baseline:dev roles: - role: cxl diff --git a/playbooks/devconfig.yml b/playbooks/devconfig.yml index b4a7393..b0b9d42 100644 --- a/playbooks/devconfig.yml +++ b/playbooks/devconfig.yml @@ -1,6 +1,6 @@ --- - name: Configure developer environment on target systems - hosts: all + hosts: baseline:dev gather_facts: no roles: - role: devconfig diff --git a/playbooks/fstests.yml b/playbooks/fstests.yml index 35a2122..193ecdc 100644 --- a/playbooks/fstests.yml +++ b/playbooks/fstests.yml @@ -5,6 +5,6 @@ - role: fstests_prep_localhost - name: Configure and run the filesystem testing suite workflow - hosts: all + hosts: baseline:dev roles: - role: fstests diff --git a/playbooks/gitr.yml b/playbooks/gitr.yml index c210cc3..a7464e5 100644 --- a/playbooks/gitr.yml +++ b/playbooks/gitr.yml @@ -1,5 +1,5 @@ --- - name: Git regresion filesystem test workflow - hosts: all + hosts: baseline:dev roles: - role: gitr diff --git a/playbooks/iscsi.yml b/playbooks/iscsi.yml index fb1e7a2..5bcfb73 100644 --- a/playbooks/iscsi.yml +++ b/playbooks/iscsi.yml @@ -1,5 +1,5 @@ --- - name: Provision and manage iSCSI targets and LUNs for shared block storage - hosts: all + hosts: iscsi roles: - role: iscsi diff --git a/playbooks/kdc.yml b/playbooks/kdc.yml index cab5265..35b576c 100644 --- a/playbooks/kdc.yml +++ b/playbooks/kdc.yml @@ -1,5 +1,5 @@ --- - name: Setup MIT Kerberos V5 KDC with realm and admin settings - hosts: all + hosts: kdc roles: - role: kdc diff --git a/playbooks/krb5.yml b/playbooks/krb5.yml index a79475f..96d41a5 100644 --- a/playbooks/krb5.yml +++ b/playbooks/krb5.yml @@ -1,5 +1,5 @@ --- - name: Setup MIT Kerberos V5 KDC and configure NFS clients for Kerberos authentication - hosts: all + hosts: krb5 roles: - role: krb5 diff --git a/playbooks/ktls.yml b/playbooks/ktls.yml index b07a161..8c3d42b 100644 --- a/playbooks/ktls.yml +++ b/playbooks/ktls.yml @@ -1,5 +1,5 @@ --- - name: Provision self-signed TLS certs and enable tlshd for kernel TLS testing (ktls) - hosts: all + hosts: baseline:dev roles: - role: ktls diff --git a/playbooks/ltp.yml b/playbooks/ltp.yml index d1e8835..7c00488 100644 --- a/playbooks/ltp.yml +++ b/playbooks/ltp.yml @@ -1,5 +1,5 @@ --- - name: Configure and run the Linux Test Project (LTP) suite workflow - hosts: all + hosts: baseline:dev roles: - role: ltp diff --git a/playbooks/nfsd.yml b/playbooks/nfsd.yml index b129300..feed988 100644 --- a/playbooks/nfsd.yml +++ b/playbooks/nfsd.yml @@ -1,5 +1,5 @@ --- - name: Set up and start the NFS server with configurable exports - hosts: all + hosts: nfsd roles: - role: nfsd diff --git a/playbooks/nfstest.yml b/playbooks/nfstest.yml index 5df62ff..e77273b 100644 --- a/playbooks/nfstest.yml +++ b/playbooks/nfstest.yml @@ -1,5 +1,5 @@ --- - name: Configure and run the nfstest workflow for NFS testing - hosts: all + hosts: baseline:dev roles: - role: nfstest diff --git a/playbooks/pkg.yml b/playbooks/pkg.yml index d6718a1..4d8aa5f 100644 --- a/playbooks/pkg.yml +++ b/playbooks/pkg.yml @@ -1,5 +1,5 @@ --- - name: Package name wrapper - hosts: all + hosts: baseline:dev roles: - role: pkg diff --git a/playbooks/pynfs.yml b/playbooks/pynfs.yml index 1ce6cb7..421ee77 100644 --- a/playbooks/pynfs.yml +++ b/playbooks/pynfs.yml @@ -1,5 +1,5 @@ --- - name: Configure and run pynfs testing workflow - hosts: all + hosts: baseline:dev roles: - role: pynfs diff --git a/playbooks/reboot-limit.yml b/playbooks/reboot-limit.yml index 7cbaea0..96b8cb4 100644 --- a/playbooks/reboot-limit.yml +++ b/playbooks/reboot-limit.yml @@ -1,5 +1,5 @@ --- - name: Configure and run the reboot-limit workflow - hosts: all + hosts: baseline:dev roles: - role: reboot-limit diff --git a/playbooks/roles/common/README.md b/playbooks/roles/common/README.md index 2b0084c..c5b0bbd 100644 --- a/playbooks/roles/common/README.md +++ b/playbooks/roles/common/README.md @@ -27,7 +27,7 @@ Below is an example playbook task: ``` --- -- hosts: all +- hosts: baseline:dev roles: - role: common ``` diff --git a/playbooks/roles/devconfig/README.md b/playbooks/roles/devconfig/README.md index fa35539..10e4b21 100644 --- a/playbooks/roles/devconfig/README.md +++ b/playbooks/roles/devconfig/README.md @@ -58,7 +58,7 @@ Below is an example playbook task: ``` --- -- hosts: all +- hosts: baseline:dev roles: - role: devconfig ``` diff --git a/playbooks/roles/gen_hosts/templates/blktests.j2 b/playbooks/roles/gen_hosts/templates/blktests.j2 index 1c2f8f7..5bf50ac 100644 --- a/playbooks/roles/gen_hosts/templates/blktests.j2 +++ b/playbooks/roles/gen_hosts/templates/blktests.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {% for test_type in blktests_enabled_test_types %} {{ kdevops_host_prefix }}-{{ test_type }} {% if kdevops_baseline_and_dev %} diff --git a/playbooks/roles/gen_hosts/templates/cxl.j2 b/playbooks/roles/gen_hosts/templates/cxl.j2 index 1b3034e..64bec45 100644 --- a/playbooks/roles/gen_hosts/templates/cxl.j2 +++ b/playbooks/roles/gen_hosts/templates/cxl.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {{ kdevops_hosts_prefix }} {% if kdevops_baseline_and_dev == True %} {{ kdevops_hosts_prefix }}-dev diff --git a/playbooks/roles/gen_hosts/templates/fstests.j2 b/playbooks/roles/gen_hosts/templates/fstests.j2 index a489c12..ac086c6 100644 --- a/playbooks/roles/gen_hosts/templates/fstests.j2 +++ b/playbooks/roles/gen_hosts/templates/fstests.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {% for s in fstests_enabled_test_types %} {{ kdevops_host_prefix }}-{{ s }} {% if kdevops_baseline_and_dev %} diff --git a/playbooks/roles/gen_hosts/templates/gitr.j2 b/playbooks/roles/gen_hosts/templates/gitr.j2 index 41aee2b..7f9094d 100644 --- a/playbooks/roles/gen_hosts/templates/gitr.j2 +++ b/playbooks/roles/gen_hosts/templates/gitr.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {% for s in gitr_enabled_hosts %} {{ kdevops_host_prefix }}-{{ s }} {% if kdevops_baseline_and_dev %} diff --git a/playbooks/roles/gen_hosts/templates/hosts.j2 b/playbooks/roles/gen_hosts/templates/hosts.j2 index 639f5a4..ca6adcf 100644 --- a/playbooks/roles/gen_hosts/templates/hosts.j2 +++ b/playbooks/roles/gen_hosts/templates/hosts.j2 @@ -7,9 +7,11 @@ its own jinja2 template file and define its own ansible task for its generation. #} {% if kdevops_workflows_dedicated_workflow %} [all] +localhost ansible_connection=local write-your-own-template-for-your-workflow-and-task {% else %} [all] +localhost ansible_connection=local {{ kdevops_hosts_prefix }} {% if kdevops_baseline_and_dev == True %} {{ kdevops_hosts_prefix }}-dev diff --git a/playbooks/roles/gen_hosts/templates/ltp.j2 b/playbooks/roles/gen_hosts/templates/ltp.j2 index 5b6ad94..828fd63 100644 --- a/playbooks/roles/gen_hosts/templates/ltp.j2 +++ b/playbooks/roles/gen_hosts/templates/ltp.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {% for s in ltp_enabled_hosts %} {{ kdevops_host_prefix }}-{{ s }} {% if kdevops_baseline_and_dev %} diff --git a/playbooks/roles/gen_hosts/templates/nfstest.j2 b/playbooks/roles/gen_hosts/templates/nfstest.j2 index fb47471..e427ac3 100644 --- a/playbooks/roles/gen_hosts/templates/nfstest.j2 +++ b/playbooks/roles/gen_hosts/templates/nfstest.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {% for s in nfstest_enabled_hosts %} {{ kdevops_host_prefix }}-{{ s }} {% if kdevops_baseline_and_dev %} diff --git a/playbooks/roles/gen_hosts/templates/pynfs.j2 b/playbooks/roles/gen_hosts/templates/pynfs.j2 index cac6fc6..85c87da 100644 --- a/playbooks/roles/gen_hosts/templates/pynfs.j2 +++ b/playbooks/roles/gen_hosts/templates/pynfs.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {{ kdevops_hosts_prefix }}-nfsd [all:vars] ansible_python_interpreter = "{{ kdevops_python_interpreter }}" diff --git a/playbooks/roles/gen_hosts/templates/selftests.j2 b/playbooks/roles/gen_hosts/templates/selftests.j2 index 085b733..e505bbf 100644 --- a/playbooks/roles/gen_hosts/templates/selftests.j2 +++ b/playbooks/roles/gen_hosts/templates/selftests.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {% for test_type in selftests_enabled_test_types %} {{ kdevops_host_prefix }}-{{ test_type }} {% if kdevops_baseline_and_dev %} diff --git a/playbooks/roles/gen_hosts/templates/sysbench.j2 b/playbooks/roles/gen_hosts/templates/sysbench.j2 index 76503ab..107eebc 100644 --- a/playbooks/roles/gen_hosts/templates/sysbench.j2 +++ b/playbooks/roles/gen_hosts/templates/sysbench.j2 @@ -1,4 +1,5 @@ [all] +localhost ansible_connection=local {% for test_type in enabled_sysbench_tests %} {{ kdevops_host_prefix }}-{{ test_type }} {% if kdevops_baseline_and_dev %} diff --git a/playbooks/roles/pkg/README.md b/playbooks/roles/pkg/README.md index a3309d5..620d9ef 100644 --- a/playbooks/roles/pkg/README.md +++ b/playbooks/roles/pkg/README.md @@ -22,7 +22,7 @@ Below is an example playbook task: ``` --- -- hosts: all +- hosts: baseline:dev roles: - role: dpkg ``` diff --git a/playbooks/roles/update_etc_hosts/tasks/main.yml b/playbooks/roles/update_etc_hosts/tasks/main.yml index 4c1307f..2b9af91 100644 --- a/playbooks/roles/update_etc_hosts/tasks/main.yml +++ b/playbooks/roles/update_etc_hosts/tasks/main.yml @@ -26,7 +26,7 @@ - name: Build list of hosts set_fact: - ueh_hosts: "{{ groups.all | flatten(levels=1) | reject('eq', inventory_hostname) }}" + ueh_hosts: "{{ ansible_play_hosts_all | difference([inventory_hostname]) }}" - debug: var: ueh_hosts diff --git a/playbooks/rxe.yml b/playbooks/rxe.yml index a5d058f..03afedc 100644 --- a/playbooks/rxe.yml +++ b/playbooks/rxe.yml @@ -1,5 +1,5 @@ --- - name: Set up software-emulated RoCE RDMA over Ethernet (rxe) via udev - hosts: all + hosts: baseline:dev roles: - role: rxe diff --git a/playbooks/selftests.yml b/playbooks/selftests.yml index 89bc824..8f3ba68 100644 --- a/playbooks/selftests.yml +++ b/playbooks/selftests.yml @@ -1,5 +1,5 @@ --- - name: Configure and run Linux kernel selftests (kselftests) - hosts: all + hosts: baseline:dev roles: - role: selftests diff --git a/playbooks/siw.yml b/playbooks/siw.yml index e6b9d61..7803827 100644 --- a/playbooks/siw.yml +++ b/playbooks/siw.yml @@ -1,5 +1,5 @@ --- - name: Set up software-emulated iWARP RDMA over TCP/IP (siw) via udev - hosts: all + hosts: baseline:dev roles: - role: siw diff --git a/playbooks/smbd.yml b/playbooks/smbd.yml index ec5176a..a85e99d 100644 --- a/playbooks/smbd.yml +++ b/playbooks/smbd.yml @@ -1,5 +1,5 @@ --- - name: Set up Samba server with shared volume and system integration - hosts: all + hosts: smbd roles: - role: smbd diff --git a/playbooks/terraform.yml b/playbooks/terraform.yml index 9b5baed..1495296 100644 --- a/playbooks/terraform.yml +++ b/playbooks/terraform.yml @@ -1,7 +1,6 @@ --- -- name: Provision target nodes with terraform - hosts: all +- name: Manage infrastructure lifecycle and SSH access with Terraform + hosts: baseline:dev gather_facts: false - hosts: all roles: - role: terraform diff --git a/playbooks/update_etc_hosts.yml b/playbooks/update_etc_hosts.yml index 269f23c..90cf708 100644 --- a/playbooks/update_etc_hosts.yml +++ b/playbooks/update_etc_hosts.yml @@ -1,6 +1,6 @@ --- - name: Update target /etc/hosts with all targets and disable cloud-init - hosts: all + hosts: baseline:dev gather_facts: no roles: - role: update_etc_hosts diff --git a/scripts/devconfig.Makefile b/scripts/devconfig.Makefile index bdff088..0e5e58c 100644 --- a/scripts/devconfig.Makefile +++ b/scripts/devconfig.Makefile @@ -57,7 +57,7 @@ extend-extra-args-devconfig: PHONY += devconfig devconfig: $(KDEVOPS_NODES) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i $(KDEVOPS_HOSTFILE) \ - -l all,nfsd \ + --limit 'baseline:dev:nfsd' \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml \ --extra-vars="$(BOOTLINUX_ARGS)" \ --extra-vars '{ kdevops_cli_install: True }' \ @@ -72,7 +72,7 @@ ifeq (y,$(CONFIG_SYSCTL_TUNING)) PHONY += sysctl-tunings sysctl-tunings: $(KDEVOPS_NODES) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i $(KDEVOPS_HOSTFILE) \ - -l all,nfsd \ + --limit 'baseline:dev:nfsd' \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) --tags vars,sysctl diff --git a/scripts/guestfs.Makefile b/scripts/guestfs.Makefile index cad1bb3..8bae2ae 100644 --- a/scripts/guestfs.Makefile +++ b/scripts/guestfs.Makefile @@ -64,7 +64,7 @@ $(KDEVOPS_PROVISIONED_SSH): LIBVIRT_DEFAULT_URI=$(CONFIG_LIBVIRT_URI) \ $(TOPDIR)/scripts/update_ssh_config_guestfs.py; \ fi - $(Q)ansible $(ANSIBLE_VERBOSE) -i hosts all -m wait_for_connection + $(Q)ansible $(ANSIBLE_VERBOSE) -i hosts 'baseline:dev' -m wait_for_connection $(Q)touch $(KDEVOPS_PROVISIONED_SSH) install_libguestfs: diff --git a/workflows/linux/Makefile b/workflows/linux/Makefile index f68c090..1e92264 100644 --- a/workflows/linux/Makefile +++ b/workflows/linux/Makefile @@ -154,7 +154,7 @@ linux-reboot: PHONY += uname uname: - $(Q)ansible all -i hosts -b -m command -a "uname -r" -o \ + $(Q)ansible 'baseline:dev' -i hosts -b -m command -a "uname -r" -o \ | awk -F '|' '{gsub(/^ +| +$$/, "", $$2); printf "%-30s %s\n", $$1, $$4}' \ | sed -e 's|(stdout)||' -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 09/12] Makefile: use inventory from ansible.cfg 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (7 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 08/12] gen_hosts: templates: include localhost in the all group Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 10/12] ansible_cfg: add support to change ansible.cfg file location Daniel Gomez ` (4 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> We can define the Ansible inventory via ansible.cfg inventory variable. Make use of it and remove all the -i/--inventory arguments in all the ansible-playbook calls. Target selection is now handled in two ways: At the playbook level (hosts: <targets>): E.g. using patterns like all, baseline:dev (which targets all nodes except localhost), or localhost. While all!localhost could be used as an alternative to baseline:dev, it is not semantically correct for kdevops. In addition, all!localhost would prevent playbooks from running on the controller host that also functions as a target node. So, most of the playbooks have been converted from all -> baseline:dev. Except for bootlinux playbook, where all is kept as the playbook runs limited to localhost in linux-clone-9p and limited to baseline:dev for the rest of the targets. - At command line: ansible-playbook --limit 'SUBSET': In order to control the hosts when the playbook defines something wider (such as the case where we want to run only on baseline targets for example), we use the ansible-playbook argument --limit. Use --limits argument with the proper syntax [1]: with quotes and colons (for list of targets or group of targets). Ensure the target string in CONFIG_ANSIBLE_CFG_INVENTORY excludes the double quotes to avoid the ANSIBLE_CFG_INVENTORY target to be triggered every time. Also, include support for KDEVOPS_HOSTS via _SET_BY_CLI to keep compatibility with the KDEVOPS_HOSTS Makefile variable that could be overwritten by the user when make was invoked to define a specific hosts file. [1] https://docs.ansible.com/ansible/latest/inventory_guide/intro_patterns.html Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- Makefile | 18 ++++----- Makefile.btrfs_progs | 4 +- Makefile.build_qemu | 12 ++---- Makefile.hypervisor-tunings | 3 +- Makefile.kdevops | 19 +++------ Makefile.linux-mirror | 6 +-- Makefile.postfix | 3 +- docs/kdevops-terraform.md | 2 +- kconfigs/Kconfig.ansible_cfg | 7 +++- playbooks/roles/bootlinux/README.md | 12 +++--- playbooks/roles/gen_hosts/defaults/main.yml | 1 - playbooks/roles/gen_hosts/tasks/main.yml | 54 +++++++++++++------------- playbooks/roles/guestfs/tasks/main.yml | 6 +++ playbooks/roles/libvirt_user/README.md | 4 +- scripts/archive.Makefile | 3 +- scripts/devconfig.Makefile | 4 +- scripts/dynamic-pci-kconfig.Makefile | 3 +- scripts/firstconfig.Makefile | 5 ++- scripts/gen-hosts.Makefile | 1 - scripts/guestfs.Makefile | 19 +++++---- scripts/install-menuconfig-deps.Makefile | 3 +- scripts/iscsi.Makefile | 1 - scripts/journal-server.Makefile | 23 ++++++----- scripts/kotd.Makefile | 16 +++++--- scripts/krb5.Makefile | 2 - scripts/ktls.Makefile | 1 - scripts/nfsd.Makefile | 1 - scripts/provision.Makefile | 5 ++- scripts/rdma.Makefile | 2 - scripts/smbd.Makefile | 1 - scripts/systemd-timesync.Makefile | 8 ++-- scripts/terraform.Makefile | 6 +-- scripts/update_etc_hosts.Makefile | 2 +- scripts/vagrant.Makefile | 10 ++--- scripts/workflows/lib/crash.py | 4 +- workflows/blktests/Makefile | 20 ++++++---- workflows/common/Makefile | 2 +- workflows/cxl/Makefile | 14 +++---- workflows/demos/reboot-limit/Makefile | 32 +++++++++------ workflows/fstests/Makefile | 40 +++++++++++-------- workflows/gitr/Makefile | 8 ++-- workflows/linux/Makefile | 60 +++++++++++++++++++---------- workflows/ltp/Makefile | 8 ++-- workflows/mmtests/Makefile | 12 +++--- workflows/nfstest/Makefile | 8 ++-- workflows/pynfs/Makefile | 12 +++--- workflows/selftests/Makefile | 11 ++++-- workflows/steady_state/Makefile | 8 ++-- workflows/sysbench/Makefile | 12 +++--- 49 files changed, 273 insertions(+), 245 deletions(-) diff --git a/Makefile b/Makefile index 5369428..2bd3da4 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,6 @@ include Makefile.subtrees export KDEVOPS_EXTRA_VARS ?= extra_vars.yaml export KDEVOPS_PLAYBOOKS_DIR := playbooks -export KDEVOPS_HOSTFILE ?= hosts export KDEVOPS_NODES := export KDEVOPS_VAGRANT := export PYTHONUNBUFFERED=1 @@ -27,6 +26,8 @@ KDEVOPS_NODES_ROLE_TEMPLATE_DIR := $(KDEVOPS_PLAYBOOKS_DIR)/roles/gen_nodes/tem export KDEVOPS_NODES_TEMPLATE := export KDEVOPS_MRPROPER := +ANSIBLE_INVENTORY_FILE := $(shell echo $(CONFIG_ANSIBLE_CFG_INVENTORY) | tr --delete '"') + KDEVOPS_INSTALL_TARGETS := DEFAULT_DEPS := @@ -79,8 +80,7 @@ CFLAGS += $(INCLUDES) ANSIBLE_EXTRA_ARGS += kdevops_version='$(PROJECTRELEASE)' -export KDEVOPS_HOSTS_TEMPLATE := $(KDEVOPS_HOSTFILE).j2 -export KDEVOPS_HOSTS := $(KDEVOPS_HOSTFILE) +export KDEVOPS_HOSTS_TEMPLATE := hosts.j2 LOCAL_DEVELOPMENT_ARGS := ifeq (y,$(CONFIG_NEEDS_LOCAL_DEVELOPMENT_PATH)) @@ -226,17 +226,15 @@ ifneq (,$(KDEVOPS_BRING_UP_DEPS)) include scripts/bringup.Makefile endif -DEFAULT_DEPS += $(KDEVOPS_HOSTS) -$(KDEVOPS_HOSTS): .config ansible.cfg $(KDEVOPS_HOSTS_TEMPLATE) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ +DEFAULT_DEPS += $(ANSIBLE_INVENTORY_FILE) +$(ANSIBLE_INVENTORY_FILE): .config ansible.cfg $(KDEVOPS_HOSTS_TEMPLATE) + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/gen_hosts.yml \ --extra-vars=@./extra_vars.yaml DEFAULT_DEPS += $(KDEVOPS_NODES) $(KDEVOPS_NODES) $(KDEVOPS_VAGRANT): .config ansible.cfg $(KDEVOPS_NODES_TEMPLATE) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/gen_nodes.yml \ --extra-vars=@./extra_vars.yaml @@ -264,7 +262,7 @@ mrproper: $(Q)rm -rf terraform/*/.terraform $(Q)rm -f terraform/*/.terraform.lock.hcl $(Q)rm -f $(KDEVOPS_NODES) - $(Q)rm -f $(KDEVOPS_HOSTFILE) $(KDEVOPS_MRPROPER) + $(Q)rm -f $(ANSIBLE_CFG_INVENTORY) $(KDEVOPS_MRPROPER) $(Q)rm -f .config .config.old extra_vars.yaml $(KCONFIG_YAMLCFG) $(Q)rm -f ansible.cfg $(Q)rm -f playbooks/secret.yml $(KDEVOPS_EXTRA_ADDON_DEST) diff --git a/Makefile.btrfs_progs b/Makefile.btrfs_progs index 73a1c95..9ccfafa 100644 --- a/Makefile.btrfs_progs +++ b/Makefile.btrfs_progs @@ -5,8 +5,8 @@ BTRFS_PROGS_SETUP_ARGS += btrfs_progs_build=True PHONY += btrfs-progs btrfs-progs: $(KDEVOPS_NODES) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/btrfs-progs.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + $(KDEVOPS_PLAYBOOKS_DIR)/btrfs-progs.yml \ --extra-vars=$(BTRFS_PROGS_SETUP_ARGS) $(LIMIT_HOSTS) btrfs-progs-help-menu: diff --git a/Makefile.build_qemu b/Makefile.build_qemu index 72e1cba..2eac6e9 100644 --- a/Makefile.build_qemu +++ b/Makefile.build_qemu @@ -20,29 +20,25 @@ QEMU_BUILD_SETUP_ARGS += qemu_target="ppc64-softmmu" endif qemu: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/build_qemu.yml \ --extra-vars=@./extra_vars.yaml PHONY += qemu qemu-install: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/build_qemu.yml \ --extra-vars=@./extra_vars.yaml --tags vars,install PHONY += qemu-install qemu-configure: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/build_qemu.yml \ --extra-vars=@./extra_vars.yaml --tags vars,configure PHONY += qemu-configure qemu-build: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/build_qemu.yml \ --extra-vars=@./extra_vars.yaml --tags vars,build PHONY += qemu-build diff --git a/Makefile.hypervisor-tunings b/Makefile.hypervisor-tunings index 39547c0..ff29b89 100644 --- a/Makefile.hypervisor-tunings +++ b/Makefile.hypervisor-tunings @@ -14,8 +14,7 @@ HYPERVISOR_TUNING_ARGS += hypervisor_tunning_zswap_max_pool_percent=$(ZSWAP_MAX_ endif kdevops_hypervisor_tunning: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/hypervisor-tuning.yml \ --extra-vars=@./extra_vars.yaml PHONY += kdevops_hypervisor_tunning diff --git a/Makefile.kdevops b/Makefile.kdevops index 60d79a5..7a15631 100644 --- a/Makefile.kdevops +++ b/Makefile.kdevops @@ -2,26 +2,22 @@ # allow your project to define these and just include this file. KDEVOPS_TERRAFORM_DIR ?= terraform KDEVOPS_PLAYBOOKS_DIR ?= playbooks -KDEVOPS_HOSTFILE ?= hosts KDEVOPS_LOCAL_WORK := kdevops_all: kdevops_deps PHONY := kdevops_all kdevops_terraform_deps: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/install_terraform.yml PHONY += kdevops_terraform_deps kdevops_install_libvirt: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/libvirt_user.yml -e "skip_configuration=True" kdevops_configure_libvirt: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/libvirt_user.yml -e "skip_install=True" \ -e 'running_user=$(USER)' @@ -33,23 +29,20 @@ PHONY += kdevops_vagrant_deps KDEVOPS_VAGRANT_WORK := kdevops_vagrant_deps kdevops_vagrant_boxes: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/install_vagrant_boxes.yml PHONY += kdevops_vagrant_boxes KDEVOPS_VAGRANT_WORK += kdevops_vagrant_boxes kdevops_verify_libvirt_user: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/libvirt_user.yml -e "only_verify_user=True" PHONY += kdevops_verify_libvirt_user KDEVOPS_VAGRANT_WORK += kdevops_verify_libvirt_user kdevops_libvirt_storage_pool_create: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/libvirt_storage_pool_create.yml PHONY += kdevops_libvirt_storage_pool_create diff --git a/Makefile.linux-mirror b/Makefile.linux-mirror index 6961a55..ccda361 100644 --- a/Makefile.linux-mirror +++ b/Makefile.linux-mirror @@ -25,8 +25,7 @@ endif MIRROR_CODE := $(TOPDIR)/playbooks/roles/linux-mirror/linux-mirror-systemd/ kdevops_linux_mirror: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook \ --tags vars,mirror \ $(KDEVOPS_PLAYBOOKS_DIR)/linux-mirror.yml \ --extra-vars=@./extra_vars.yaml @@ -37,8 +36,7 @@ mirror: $(KDEVOPS_EXTRA_VARS) kdevops_linux_mirror PHONY += mirror mirror-status: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook \ --tags vars,mirror-status \ $(KDEVOPS_PLAYBOOKS_DIR)/linux-mirror.yml \ --extra-vars=@./extra_vars.yaml diff --git a/Makefile.postfix b/Makefile.postfix index 5db23dc..704c715 100644 --- a/Makefile.postfix +++ b/Makefile.postfix @@ -7,8 +7,7 @@ POSTFIX_SETUP_ARGS += postfix_relay_host_setup=True POSTFIX_SETUP_ARGS += postfix_relay_host=$(POSTFIX_RELAY_HOST) kdevops_postfix_setup_relay: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/postfix_relay_host.yml \ --extra-vars=@./extra_vars.yaml PHONY += kdevos_postfix_setup_relay diff --git a/docs/kdevops-terraform.md b/docs/kdevops-terraform.md index e6a518c..3291444 100644 --- a/docs/kdevops-terraform.md +++ b/docs/kdevops-terraform.md @@ -120,7 +120,7 @@ connectivity issues. In such cases, you can run the Ansible role yourself manually: ```bash -ansible-playbook -i hosts -l kdevops playbooks/devconfig.yml +ansible-playbook -l kdevops playbooks/devconfig.yml ``` Note that there a few configuration items you may have enabled, for things diff --git a/kconfigs/Kconfig.ansible_cfg b/kconfigs/Kconfig.ansible_cfg index 735160c..a05c8cb 100644 --- a/kconfigs/Kconfig.ansible_cfg +++ b/kconfigs/Kconfig.ansible_cfg @@ -14,6 +14,10 @@ config ANSIBLE_CFG_TASK_DEBUGGER_SET_BY_CLI bool default $(shell, scripts/check-cli-set-var.sh ANSIBLE_CFG_TASK_DEBUGGER) +config ANSIBLE_CFG_INVENTORY_SET_BY_CLI + bool + default $(shell, scripts/check-cli-set-var.sh KDEVOPS_HOSTS) + menu "Ansible Callback Plugin Configuration" choice prompt "Ansible Callback Plugin" @@ -227,7 +231,8 @@ config ANSIBLE_CFG_TASK_DEBUGGER config ANSIBLE_CFG_INVENTORY string "Ansible inventory sources" output yaml - default "$(TOPDIR_PATH)/hosts" + default "$(TOPDIR_PATH)/hosts" if !ANSIBLE_CFG_INVENTORY_SET_BY_CLI + default $(shell, ./scripts/append-makefile-vars-int.sh $(KDEVOPS_HOSTS)) if ANSIBLE_CFG_INVENTORY_SET_BY_CLI help Comma-separated list of Ansible inventory source paths. diff --git a/playbooks/roles/bootlinux/README.md b/playbooks/roles/bootlinux/README.md index 8c0b1d5..5179f49 100644 --- a/playbooks/roles/bootlinux/README.md +++ b/playbooks/roles/bootlinux/README.md @@ -78,7 +78,7 @@ You can compile say a vanilla kernel v4.19.58 with an extra set of patches we'd ``` cd ansible -ansible-playbook -i hosts -l dev --extra-vars "target_linux_extra_patch=pend-v4.19.58-fixes-20190716-v2.patch" bootlinux.yml +ansible-playbook -l dev --extra-vars "target_linux_extra_patch=pend-v4.19.58-fixes-20190716-v2.patch" bootlinux.yml ``` You'd place the `pend-v4.19.58-fixes-20190716-v2.patch` file on the directory @@ -87,19 +87,19 @@ You'd place the `pend-v4.19.58-fixes-20190716-v2.patch` file on the directory Now say you wantd to be explicit about a tag of Linux you'd want to use: ``` -ansible-playbook -i hosts -l dev --extra-vars "target_linux_ref=v4.19.21 "target_linux_extra_patch=try-v4.19.20-fixes-20190716-v1.patch" bootlinux.yml +ansible-playbook -l dev --extra-vars "target_linux_ref=v4.19.21 "target_linux_extra_patch=try-v4.19.20-fixes-20190716-v1.patch" bootlinux.yml ``` To uninstall a kernel: ``` -ansible-playbook -i hosts -l dev --tags uninstall-linux --extra-vars "uninstall_kernel_ver=4.19.58+" bootlinux.yml +ansible-playbook -l dev --tags uninstall-linux --extra-vars "uninstall_kernel_ver=4.19.58+" bootlinux.yml ``` To ensure you can get the grub prompt: ```bash -ansible-playbook -i hosts --tags vars,manual-update-grub playbooks/bootlinux.yml +ansible-playbook --tags vars,manual-update-grub playbooks/bootlinux.yml ``` The ansible bootlinux role relies on the create_partition role to create a data @@ -107,13 +107,13 @@ partition where we can stuff code, and compile it. To test that aspect of the bootlinux role you can run: ``` -ansible-playbook -i hosts -l baseline --tags data_partition,partition bootlinux.yml +ansible-playbook -l baseline --tags data_partition,partition bootlinux.yml ``` To reboot all hosts: ```bash -ansible-playbook -i hosts bootlinux.yml --tags reboot +ansible-playbook bootlinux.yml --tags reboot ``` For further examples refer to one of this role's users, the diff --git a/playbooks/roles/gen_hosts/defaults/main.yml b/playbooks/roles/gen_hosts/defaults/main.yml index d621a0b..9770e3c 100644 --- a/playbooks/roles/gen_hosts/defaults/main.yml +++ b/playbooks/roles/gen_hosts/defaults/main.yml @@ -6,7 +6,6 @@ hosts_type_generic: True hosts_type_fs: False hosts_type_block: False -kdevops_hosts: "hosts" kdevops_hosts_template: "hosts.in" kdevops_playbooks_dir: "/dev/null" kdevops_genhosts_templates_dir: "/dev/null" diff --git a/playbooks/roles/gen_hosts/tasks/main.yml b/playbooks/roles/gen_hosts/tasks/main.yml index 58ebd1d..e8d2268 100644 --- a/playbooks/roles/gen_hosts/tasks/main.yml +++ b/playbooks/roles/gen_hosts/tasks/main.yml @@ -18,23 +18,23 @@ command: "id -g -n" register: my_group -- name: Check if the file {{ kdevops_hosts }} exists already +- name: Check if the inventory file exists already stat: - path: "{{ topdir_path }}/{{ kdevops_hosts }}" + path: "{{ ansible_cfg_inventory }}" register: kdevops_hosts_dest -- name: Ensure proper permission on the file {{ kdevops_hosts }} +- name: Ensure proper permission on the inventory file become: yes become_flags: 'su - -c' become_method: sudo file: - path: "{{ topdir_path }}/{{ kdevops_hosts }}" + path: "{{ ansible_cfg_inventory }}" owner: "{{ my_user.stdout }}" group: "{{ my_group.stdout }}" when: - kdevops_hosts_dest.stat.exists -- name: Verify Ansible host template file exists {{ kdevops_hosts_template_full_path }} +- name: Verify Ansible inventory template file exists stat: path: "{{ kdevops_hosts_template_full_path }}" register: ansible_hosts_template @@ -56,11 +56,11 @@ when: - is_fstests -- name: Generate the Ansible hosts file +- name: Generate the Ansible inventory file tags: [ 'hosts' ] template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: yes trim_blocks: True lstrip_blocks: True @@ -70,15 +70,15 @@ - name: Update Ansible inventory access modification time so make sees it updated ansible.builtin.file: - path: "{{ topdir_path }}/{{ kdevops_hosts }}" + path: "{{ ansible_cfg_inventory }}" state: touch mode: '0755' -- name: Generate the Ansible hosts file for dedicated cxl work +- name: Generate the Ansible inventory file for dedicated cxl work tags: [ 'hosts' ] template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ anisble_cfg_inventory }}" force: yes trim_blocks: True lstrip_blocks: True @@ -87,11 +87,11 @@ - kdevops_workflow_enable_cxl - ansible_hosts_template.stat.exists -- name: Generate the Ansible hosts file for dedicated pynfs work +- name: Generate the Ansible inventory file for dedicated pynfs work tags: [ 'hosts' ] template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: yes trim_blocks: True lstrip_blocks: True @@ -100,13 +100,13 @@ - kdevops_workflow_enable_pynfs - ansible_hosts_template.stat.exists -- name: Generate the Ansible hosts file for dedicated gitr workflow +- name: Generate the Ansible inventory file for dedicated gitr workflow tags: [ 'hosts' ] vars: gitr_enabled_hosts: "{{ gitr_enabled_test_groups|ansible.builtin.split }}" template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: true trim_blocks: true lstrip_blocks: true @@ -115,13 +115,13 @@ - kdevops_workflow_enable_gitr - ansible_hosts_template.stat.exists -- name: Generate an Ansible hosts file for a dedicated ltp workflow +- name: Generate an Ansible inventory file for a dedicated ltp workflow tags: [ 'hosts' ] vars: ltp_enabled_hosts: "{{ ltp_enabled_test_groups|ansible.builtin.split }}" ansible.builtin.template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: yes trim_blocks: True lstrip_blocks: True @@ -130,13 +130,13 @@ - kdevops_workflow_enable_ltp - ansible_hosts_template.stat.exists -- name: Generate the Ansible hosts file for dedicated nfstest workflow +- name: Generate the Ansible inventory file for dedicated nfstest workflow tags: [ 'hosts' ] vars: nfstest_enabled_hosts: "{{ nfstest_enabled_test_groups | ansible.builtin.split }}" template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: true trim_blocks: true lstrip_blocks: true @@ -189,7 +189,7 @@ - ansible_hosts_template.stat.exists - item.changed -- name: Generate the Ansible hosts file for a dedicated fstests setup +- name: Generate the Ansible inventory file for a dedicated fstests setup tags: [ 'hosts' ] vars: fs_config_data: "{{ lookup('file', fs_config_path) }}" @@ -200,7 +200,7 @@ sections: "{{ sections_replace_underscore | replace(\"'\", '') | split(', ') }}" template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: yes trim_blocks: True lstrip_blocks: True @@ -231,11 +231,11 @@ - kdevops_workflow_enable_blktests - ansible_hosts_template.stat.exists -- name: Generate the Ansible hosts file for a dedicated blktests setup +- name: Generate the Ansible inventory file for a dedicated blktests setup tags: [ 'hosts' ] template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: yes trim_blocks: True lstrip_blocks: True @@ -258,11 +258,11 @@ - kdevops_workflow_enable_selftests - ansible_hosts_template.stat.exists -- name: Generate the Ansible hosts file for a dedicated selftests setup +- name: Generate the Ansible inventory file for a dedicated selftests setup tags: [ 'hosts' ] template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: yes trim_blocks: True lstrip_blocks: True @@ -299,11 +299,11 @@ - kdevops_workflows_dedicated_workflow - kdevops_workflow_enable_sysbench -- name: Generate the Ansible hosts file for a dedicated sysbench setup +- name: Generate the Ansible inventory file for a dedicated sysbench setup tags: [ 'hosts' ] template: src: "{{ kdevops_hosts_template }}" - dest: "{{ topdir_path }}/{{ kdevops_hosts }}" + dest: "{{ ansible_cfg_inventory }}" force: yes trim_blocks: True lstrip_blocks: True @@ -341,7 +341,7 @@ - name: Verify if final host file exists stat: - path: "{{ topdir_path }}/{{ kdevops_hosts }}" + path: "{{ ansible_cfg_inventory }}" register: final_hosts_file - name: Fail if the dedicated workflow has no rules for node configuration for hosts file configuration diff --git a/playbooks/roles/guestfs/tasks/main.yml b/playbooks/roles/guestfs/tasks/main.yml index d6530f8..644922b 100644 --- a/playbooks/roles/guestfs/tasks/main.yml +++ b/playbooks/roles/guestfs/tasks/main.yml @@ -23,6 +23,7 @@ - bringup ansible.builtin.set_fact: storagedir: "{{ kdevops_storage_pool_path }}/guestfs" + delegate_to: localhost - name: Set the pathname of the OS base image tags: @@ -30,6 +31,7 @@ - bringup ansible.builtin.set_fact: base_image: "{{ storagedir }}/base_images/{{ virtbuilder_os_version }}.raw" + delegate_to: localhost - name: Ensure the required base OS image exists tags: @@ -39,12 +41,14 @@ vars: base_image_os_version: "{{ virtbuilder_os_version }}" base_image_pathname: "{{ base_image }}" + delegate_to: localhost - name: Bring up each target node tags: - bringup ansible.builtin.import_tasks: file: "{{ role_path }}/tasks/bringup/main.yml" + delegate_to: localhost - name: Set up target node console permissions tags: @@ -53,9 +57,11 @@ file: "{{ role_path }}/tasks/bringup/console-permissions.yml" when: - libvirt_uri_system|bool + delegate_to: localhost - name: Shut down and destroy each target node tags: - destroy ansible.builtin.import_tasks: file: "{{ role_path }}/tasks/destroy.yml" + delegate_to: localhost diff --git a/playbooks/roles/libvirt_user/README.md b/playbooks/roles/libvirt_user/README.md index 2120e84..7a0e034 100644 --- a/playbooks/roles/libvirt_user/README.md +++ b/playbooks/roles/libvirt_user/README.md @@ -65,11 +65,11 @@ take effect So for instance you would have: ```bash # Does the actual work -ansible-playbook -i hosts playbooks/libvirt_user.yml +ansible-playbook playbooks/libvirt_user.yml # Verify if the changes are already effective if not warn the user to log # out and back in. -ansible-playbook -i hosts playbooks/libvirt_user.yml -e "only_verify_user=True" +ansible-playbook playbooks/libvirt_user.yml -e "only_verify_user=True" ``` ## Running libvirt as a regular user diff --git a/scripts/archive.Makefile b/scripts/archive.Makefile index 54928d3..23a693d 100644 --- a/scripts/archive.Makefile +++ b/scripts/archive.Makefile @@ -13,8 +13,7 @@ ARCHIVE_DYNAMIC_RUNTIME_VARS += \ endif ci-archive: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/kdevops_archive.yml \ --extra-vars '{ $(ARCHIVE_DYNAMIC_RUNTIME_VARS) }' \ --extra-vars=@./extra_vars.yaml diff --git a/scripts/devconfig.Makefile b/scripts/devconfig.Makefile index 0e5e58c..146c70f 100644 --- a/scripts/devconfig.Makefile +++ b/scripts/devconfig.Makefile @@ -56,7 +56,7 @@ extend-extra-args-devconfig: PHONY += devconfig devconfig: $(KDEVOPS_NODES) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i $(KDEVOPS_HOSTFILE) \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ --limit 'baseline:dev:nfsd' \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml \ --extra-vars="$(BOOTLINUX_ARGS)" \ @@ -71,7 +71,7 @@ HELP_TARGETS+=devconfig-generic-help-menu ifeq (y,$(CONFIG_SYSCTL_TUNING)) PHONY += sysctl-tunings sysctl-tunings: $(KDEVOPS_NODES) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i $(KDEVOPS_HOSTFILE) \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ --limit 'baseline:dev:nfsd' \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) --tags vars,sysctl diff --git a/scripts/dynamic-pci-kconfig.Makefile b/scripts/dynamic-pci-kconfig.Makefile index 716cdc1..8902da2 100644 --- a/scripts/dynamic-pci-kconfig.Makefile +++ b/scripts/dynamic-pci-kconfig.Makefile @@ -42,8 +42,7 @@ endif # CONFIG_KDEVOPS_LIBVIRT_PCIE_PASSTHROUGH HELP_TARGETS += dynamic-kconfig-pci-help dynamic_pcipassthrough_kconfig: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/gen-pci-kconfig.yml \ --extra-vars '{ $(PCIE_RUNTIME_VARS) }' diff --git a/scripts/firstconfig.Makefile b/scripts/firstconfig.Makefile index f1a4423..9f8a63a 100644 --- a/scripts/firstconfig.Makefile +++ b/scripts/firstconfig.Makefile @@ -1,8 +1,9 @@ # SPDX-License-Identifier: copyleft-next-0.3.1 firstconfig: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -l baseline,dev \ - -i hosts --extra-vars '{ kdevops_cli_install: True }' \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + --extra-vars '{ kdevops_cli_install: True }' \ --tags vars_simple,firstconfig \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml diff --git a/scripts/gen-hosts.Makefile b/scripts/gen-hosts.Makefile index 84e47fd..0d1e0cd 100644 --- a/scripts/gen-hosts.Makefile +++ b/scripts/gen-hosts.Makefile @@ -4,7 +4,6 @@ KDEVOPS_PLAYBOOKS_DIR_FULL_PATH=$(TOPDIR_PATH)/$(KDEVOPS_PLAYBOOKS_DIR) KDEVOPS_HOSTS_TEMPLATE_DIR=$(KDEVOPS_PLAYBOOKS_DIR_FULL_PATH)/roles/gen_hosts/templates GENHOSTS_EXTRA_ARGS += kdevops_playbooks_dir='$(KDEVOPS_PLAYBOOKS_DIR)' -GENHOSTS_EXTRA_ARGS += kdevops_hosts='$(KDEVOPS_HOSTFILE)' # Relative path so that ansible can work with it KDEVOPS_HOSTS_TEMPLATE_SHORT:=$(KDEVOPS_HOSTS_TEMPLATE) diff --git a/scripts/guestfs.Makefile b/scripts/guestfs.Makefile index 8bae2ae..bd03f58 100644 --- a/scripts/guestfs.Makefile +++ b/scripts/guestfs.Makefile @@ -51,41 +51,40 @@ KDEVOPS_PROVISION_DESTROY_METHOD := destroy_guestfs $(Q)make linux-clone libvirt_pcie_passthrough_permissions: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/libvirt_pcie_passthrough.yml $(KDEVOPS_PROVISIONED_SSH): $(Q)if [[ "$(CONFIG_KDEVOPS_SSH_CONFIG_UPDATE)" == "y" ]]; then \ - ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/update_ssh_config_guestfs.yml \ --extra-vars=@./extra_vars.yaml; \ LIBVIRT_DEFAULT_URI=$(CONFIG_LIBVIRT_URI) \ $(TOPDIR)/scripts/update_ssh_config_guestfs.py; \ fi - $(Q)ansible $(ANSIBLE_VERBOSE) -i hosts 'baseline:dev' -m wait_for_connection + $(Q)ansible $(ANSIBLE_VERBOSE) 'baseline:dev:service' -m wait_for_connection $(Q)touch $(KDEVOPS_PROVISIONED_SSH) install_libguestfs: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - --inventory localhost, \ + --limit 'localhost' \ playbooks/guestfs.yml \ --extra-vars=@./extra_vars.yaml \ --tags install-deps bringup_guestfs: $(GUESTFS_BRINGUP_DEPS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - --connection=local --inventory localhost, \ + --limit 'localhost' \ $(KDEVOPS_PLAYBOOKS_DIR)/guestfs.yml \ --extra-vars=@./extra_vars.yaml \ --tags network,pool,base_image $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/guestfs.yml \ + --limit 'baseline:dev:service' \ + playbooks/guestfs.yml \ --extra-vars=@./extra_vars.yaml \ --tags bringup $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - --connection=local --inventory localhost, \ + --limit 'localhost' \ $(KDEVOPS_PLAYBOOKS_DIR)/guestfs.yml \ --extra-vars=@./extra_vars.yaml \ --tags console @@ -97,7 +96,7 @@ PHONY += status_guestfs destroy_guestfs: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/guestfs.yml \ + playbooks/guestfs.yml \ --extra-vars=@./extra_vars.yaml \ --tags destroy $(Q)rm -f $(KDEVOPS_PROVISIONED_SSH) $(KDEVOPS_PROVISIONED_DEVCONFIG) diff --git a/scripts/install-menuconfig-deps.Makefile b/scripts/install-menuconfig-deps.Makefile index 772e65d..4b9aef8 100644 --- a/scripts/install-menuconfig-deps.Makefile +++ b/scripts/install-menuconfig-deps.Makefile @@ -1,8 +1,7 @@ # SPDX-License-Identifier: copyleft-next-0.3.1 menuconfig-deps: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/install-menuconfig-deps.yml \ -e 'kdevops_first_run=True' PHONY += menuconfig-deps diff --git a/scripts/iscsi.Makefile b/scripts/iscsi.Makefile index d9ac22b..a647c2b 100644 --- a/scripts/iscsi.Makefile +++ b/scripts/iscsi.Makefile @@ -7,7 +7,6 @@ ANSIBLE_EXTRA_ARGS += $(ISCSI_EXTRA_ARGS) iscsi: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l iscsi \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/iscsi.yml diff --git a/scripts/journal-server.Makefile b/scripts/journal-server.Makefile index da61fa3..d3c3971 100644 --- a/scripts/journal-server.Makefile +++ b/scripts/journal-server.Makefile @@ -11,24 +11,26 @@ ANSIBLE_EXTRA_ARGS += devconfig_systemd_journal_use_http='True' endif journal-client: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -l baseline,dev \ - -i hosts --extra-vars '{ kdevops_cli_install: True }' \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + --extra-vars '{ kdevops_cli_install: True }' \ --tags vars_simple,journal \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml journal-server: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/install_systemd_journal_remote.yml journal-restart: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -l baseline,dev \ - -i hosts --tags vars_extra,journal-upload-restart \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + --tags vars_extra,journal-upload-restart \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml journal-status: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -l baseline,dev \ - -i hosts --tags vars_extra,journal-status \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + --tags vars_extra,journal-status \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml journal-ls: @@ -39,8 +41,9 @@ journal-dump: journal-ln: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -l baseline,dev \ - -i hosts --tags vars_extra,journal_ln \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + --tags vars_extra,journal_ln \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml LOCALHOST_SETUP_WORK += journal-server diff --git a/scripts/kotd.Makefile b/scripts/kotd.Makefile index b9b7cf6..c74aad5 100644 --- a/scripts/kotd.Makefile +++ b/scripts/kotd.Makefile @@ -9,19 +9,23 @@ endif # HAVE_DISTRO_CUSTOM_KOTD_REPO ANSIBLE_CMD_KOTD_ENABLE := -kotd: $(KDEVOPS_HOSTS) .config +kotd: inventory .config $(Q)$(ANSIBLE_CMD_KOTD_ENABLE)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/devconfig.yml --tags vars,kotd \ + playbooks/devconfig.yml --tags vars,kotd \ --extra-vars=@./extra_vars.yaml -kotd-baseline: $(KDEVOPS_HOSTS) .config +kotd-baseline: inventory .config $(Q)$(ANSIBLE_CMD_KOTD_ENABLE)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/devconfig.yml --tags vars,kotd \ + --limit 'baseline' \ + playbooks/devconfig.yml \ + --tags vars,kotd \ --extra-vars=@./extra_vars.yaml -kotd-dev: $(KDEVOPS_HOSTS) .config +kotd-dev: inventory .config $(Q)$(ANSIBLE_CMD_KOTD_ENABLE)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/devconfig.yml --tags vars,kotd \ + --limit 'dev' \ + playbooks/devconfig.yml \ + --tags vars,kotd \ --extra-vars=@./extra_vars.yaml kotd-help-menu: diff --git a/scripts/krb5.Makefile b/scripts/krb5.Makefile index d49e77b..a414fc8 100644 --- a/scripts/krb5.Makefile +++ b/scripts/krb5.Makefile @@ -8,13 +8,11 @@ ANSIBLE_EXTRA_ARGS += $(KRB5_EXTRA_ARGS) kdc: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l kdc \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/kdc.yml krb5: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l krb5 \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/krb5.yml diff --git a/scripts/ktls.Makefile b/scripts/ktls.Makefile index ee1de73..83a8dbe 100644 --- a/scripts/ktls.Makefile +++ b/scripts/ktls.Makefile @@ -2,7 +2,6 @@ ifeq (y,$(CONFIG_KDEVOPS_SETUP_KTLS)) ktls: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/ktls.yml diff --git a/scripts/nfsd.Makefile b/scripts/nfsd.Makefile index 79b9801..9293353 100644 --- a/scripts/nfsd.Makefile +++ b/scripts/nfsd.Makefile @@ -29,7 +29,6 @@ ANSIBLE_EXTRA_ARGS += $(NFSD_EXTRA_ARGS) nfsd: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l nfsd \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/nfsd.yml diff --git a/scripts/provision.Makefile b/scripts/provision.Makefile index 92a7541..59d68ab 100644 --- a/scripts/provision.Makefile +++ b/scripts/provision.Makefile @@ -69,8 +69,9 @@ KDEVOPS_MRPROPER += $(KDEVOPS_PROVISIONED_DEVCONFIG) $(KDEVOPS_PROVISIONED_DEVCONFIG): $(Q)if [[ "$(CONFIG_KDEVOPS_ANSIBLE_PROVISION_PLAYBOOK)" != "" ]]; then \ - ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/$(KDEVOPS_ANSIBLE_PROVISION_PLAYBOOK) ;\ + ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/$(KDEVOPS_ANSIBLE_PROVISION_PLAYBOOK) ;\ fi $(Q)touch $(KDEVOPS_PROVISIONED_DEVCONFIG) diff --git a/scripts/rdma.Makefile b/scripts/rdma.Makefile index 5c8b60d..c63b63a 100644 --- a/scripts/rdma.Makefile +++ b/scripts/rdma.Makefile @@ -2,7 +2,6 @@ ifeq (y,$(CONFIG_KDEVOPS_SETUP_RDMA_SIW)) siw: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/siw.yml @@ -16,7 +15,6 @@ ifeq (y,$(CONFIG_KDEVOPS_SETUP_RDMA_RXE)) rxe: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/rxe.yml diff --git a/scripts/smbd.Makefile b/scripts/smbd.Makefile index 1be5b93..3101e97 100644 --- a/scripts/smbd.Makefile +++ b/scripts/smbd.Makefile @@ -9,7 +9,6 @@ ANSIBLE_EXTRA_ARGS += $(SMBD_EXTRA_ARGS) smbd: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l smbd \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/smbd.yml diff --git a/scripts/systemd-timesync.Makefile b/scripts/systemd-timesync.Makefile index 9b84b4a..148bf17 100644 --- a/scripts/systemd-timesync.Makefile +++ b/scripts/systemd-timesync.Makefile @@ -20,14 +20,14 @@ ANSIBLE_EXTRA_ARGS += devconfig_enable_systemd_timesyncd_ntp_google_debian='True endif timesyncd-client: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -l baseline,dev \ - -i hosts --extra-vars '{ kdevops_cli_install: True }' \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + --extra-vars '{ kdevops_cli_install: True }' \ --tags vars_simple,timesyncd \ $(KDEVOPS_PLAYBOOKS_DIR)/devconfig.yml timesyncd-server: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/install_systemd_timesyncd.yml timesyncd-status: diff --git a/scripts/terraform.Makefile b/scripts/terraform.Makefile index 865c84c..c288369 100644 --- a/scripts/terraform.Makefile +++ b/scripts/terraform.Makefile @@ -101,13 +101,11 @@ ANSIBLE_EXTRA_ARGS += $(TERRAFORM_EXTRA_VARS) bringup_terraform: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - --connection=local --inventory localhost, \ playbooks/terraform.yml --tags bringup \ --extra-vars=@./extra_vars.yaml $(KDEVOPS_PROVISIONED_SSH): $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) \ playbooks/terraform.yml --tags ssh \ --extra-vars=@./extra_vars.yaml $(Q)touch $(KDEVOPS_PROVISIONED_SSH) @@ -117,13 +115,11 @@ status_terraform: destroy_terraform: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - --connection=local -i $(KDEVOPS_HOSTFILE) \ playbooks/terraform.yml --tags destroy \ --extra-vars=@./extra_vars.yaml $(Q)rm -f $(KDEVOPS_PROVISIONED_SSH) $(KDEVOPS_PROVISIONED_DEVCONFIG) $(KDEVOPS_TFVARS): $(KDEVOPS_TFVARS_TEMPLATE) .config - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/gen_tfvars.yml \ --extra-vars=@./extra_vars.yaml diff --git a/scripts/update_etc_hosts.Makefile b/scripts/update_etc_hosts.Makefile index 4da15ea..5fb90e9 100644 --- a/scripts/update_etc_hosts.Makefile +++ b/scripts/update_etc_hosts.Makefile @@ -1,6 +1,6 @@ update_etc_hosts: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/update_etc_hosts.yml + playbooks/update_etc_hosts.yml KDEVOPS_BRING_UP_DEPS_EARLY += update_etc_hosts diff --git a/scripts/vagrant.Makefile b/scripts/vagrant.Makefile index e43a21d..2c97f46 100644 --- a/scripts/vagrant.Makefile +++ b/scripts/vagrant.Makefile @@ -80,21 +80,19 @@ extend-extra-args-vagrant: fi vagrant_private_box_install: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/install_vagrant_boxes.yml + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + $(KDEVOPS_PLAYBOOKS_DIR)/install_vagrant_boxes.yml vagrant_9p_linux_clone: $(Q)make linux-clone libvirt_pcie_passthrough_permissions: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/libvirt_pcie_passthrough.yml $(KDEVOPS_PROVISIONED_SSH): $(Q)if [[ "$(CONFIG_KDEVOPS_SSH_CONFIG_UPDATE)" == "y" ]]; then \ - ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/update_ssh_config_vagrant.yml fi $(Q)touch $(KDEVOPS_PROVISIONED_SSH) diff --git a/scripts/workflows/lib/crash.py b/scripts/workflows/lib/crash.py index 663de93..d9d121d 100755 --- a/scripts/workflows/lib/crash.py +++ b/scripts/workflows/lib/crash.py @@ -769,9 +769,7 @@ class KernelCrashWatchdog: subprocess.run( [ "ansible", - "-i", - "hosts", - "all", + "'baseline:dev'", "-m", "wait_for_connection", "-l", diff --git a/workflows/blktests/Makefile b/workflows/blktests/Makefile index 33fb648..92c96ba 100644 --- a/workflows/blktests/Makefile +++ b/workflows/blktests/Makefile @@ -67,12 +67,13 @@ extend-extra-args-blktests: blktests: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/blktests.yml \ + playbooks/blktests.yml \ --skip-tags run_tests,copy_results $(LIMIT_HOSTS) blktests-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/blktests.yml \ + --limit 'baseline' \ + playbooks/blktests.yml \ --tags run_tests,copy_results \ --extra-vars '{ $(BLKTESTS_DYNAMIC_RUNTIME_VARS) }' \ --extra-vars=@./extra_vars.yaml $(LIMIT_HOSTS) @@ -85,14 +86,16 @@ blktests-baseline-kernelci: blktests-baseline-skip-kdevops-update: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/blktests.yml \ + --limit 'baseline' \ + playbooks/blktests.yml \ --tags run_tests,copy_results --skip-tags git_update \ --extra-vars '{ $(BLKTESTS_DYNAMIC_RUNTIME_VARS) }' \ --extra-vars=@./extra_vars.yaml $(LIMIT_HOSTS) blktests-baseline-run-oscheck-only: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/blktests.yml \ + --limit 'baseline' \ + playbooks/blktests.yml \ --tags run_tests,copy_results \ --skip-tags git_update,reboot,clean_results \ --extra-vars '{ $(BLKTESTS_DYNAMIC_RUNTIME_VARS) }' \ @@ -100,14 +103,16 @@ blktests-baseline-run-oscheck-only: blktests-dev: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/blktests.yml \ + --limit 'dev' \ + playbooks/blktests.yml \ --tags run_tests,copy_results \ --extra-vars '{ $(BLKTESTS_DYNAMIC_RUNTIME_VARS) }' \ --extra-vars=@./extra_vars.yaml $(LIMIT_HOSTS) blktests-baseline-results: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/blktests.yml \ + --limit 'baseline' \ + playbooks/blktests.yml \ --tags copy_results,print_results \ --extra-vars '{ kdevops_run_blktests: True }' \ --extra-vars=@./extra_vars.yaml $(LIMIT_HOSTS) @@ -116,7 +121,8 @@ blktests-results: blktests-baseline-results blktests-dev-results: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/blktests.yml \ + --limit 'dev' \ + playbooks/blktests.yml \ --tags copy_results,print_results \ --extra-vars '{ kdevops_run_blktests: True }' \ --extra-vars=@./extra_vars.yaml $(LIMIT_HOSTS) diff --git a/workflows/common/Makefile b/workflows/common/Makefile index cfbebeb..9ae0a0a 100644 --- a/workflows/common/Makefile +++ b/workflows/common/Makefile @@ -38,7 +38,7 @@ endif # CONFIG_WORKFLOW_INFER_USER_AND_GROUP == y ifeq (y,$(CONFIG_KDEVOPS_WORKFLOW_GIT_CLONES_KDEVOPS_GIT)) kdevops-git-reset: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/common.yml --tags vars,kdevops_reset \ + playbooks/common.yml --tags vars,kdevops_reset \ --extra-vars '{ kdevops_git_reset: True }' $(LIMIT_HOSTS) kdevops-help-menu: diff --git a/workflows/cxl/Makefile b/workflows/cxl/Makefile index 11d3e85..bb13005 100644 --- a/workflows/cxl/Makefile +++ b/workflows/cxl/Makefile @@ -20,42 +20,42 @@ include $(TOPDIR)/workflows/cxl/Makefile.kernel cxl: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/cxl.yml \ + playbooks/cxl.yml \ --skip-tags run_tests,copy_results \ $(LIMIT_HOSTS) cxl-test-probe: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/cxl.yml \ + playbooks/cxl.yml \ --tags vars,cxl-test-prep,cxl-test-probe \ --extra-vars '{ $(CXL_DYNAMIC_RUNTIME_VARS) }' \ $(LIMIT_HOSTS) cxl-test-meson: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/cxl.yml \ + playbooks/cxl.yml \ --tags vars,cxl-test-prep,cxl-test-meson \ --extra-vars '{ $(CXL_DYNAMIC_RUNTIME_VARS) }' \ $(LIMIT_HOSTS) cxl-results: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/cxl.yml \ + playbooks/cxl.yml \ --tags vars,copy_results $(LIMIT_HOSTS) cxl-mem-setup: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/cxl.yml \ + playbooks/cxl.yml \ --tags vars,extra-vars,cxl-mem-setup $(LIMIT_HOSTS) cxl-create-dc-region: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/cxl.yml \ + playbooks/cxl.yml \ --tags vars,cxl-create-dc-region $(LIMIT_HOSTS) cxl-dcd-setup: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/cxl.yml \ + playbooks/cxl.yml \ --tags vars,cxl-dcd-setup $(LIMIT_HOSTS) cxl-help-menu: diff --git a/workflows/demos/reboot-limit/Makefile b/workflows/demos/reboot-limit/Makefile index a6b4aaf..e4cbf29 100644 --- a/workflows/demos/reboot-limit/Makefile +++ b/workflows/demos/reboot-limit/Makefile @@ -25,7 +25,7 @@ REBOOT_LIMIT_TEST_TYPE :=$(subst ",,$(CONFIG_REBOOT_LIMIT_TEST_TYPE)) # into the file extra_vars.yaml. The extra_vars.yaml file is always used as an # argument to ansible so that it reads our manually converted kconfig varibles # in ansible. We typically call a playbook with something like: -# ansible-playbook -i hosts -l baseline playbooks/foo.yml --tags bar --extra-vars=@./extra_vars.yaml +# ansible-playbook -l baseline playbooks/foo.yml --tags bar --extra-vars=@./extra_vars.yaml # # Likewise most playbooks also have something like the following as their first # task in their playbooks, so that they don't have to be specifying the @@ -104,7 +104,7 @@ endif # CONFIG_KERNEL_CI # with tags "run_tests" or "copy_results". reboot-limit: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/reboot-limit.yml \ + playbooks/reboot-limit.yml \ --skip-tags run_tests,copy_results # kdevops supports generic workflows such as the enabling you to then use the @@ -134,10 +134,13 @@ reboot-limit: # fly. reboot-limit-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/reboot-limit.yml \ - --tags vars,first_run,reset --extra-vars=@./extra_vars.yaml + --limit 'baseline' \ + playbooks/reboot-limit.yml \ + --tags vars,first_run,reset \ + --extra-vars=@./extra_vars.yaml $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/reboot-limit.yml \ + --limit 'baseline' \ + playbooks/reboot-limit.yml \ --tags vars,run_tests,copy_results \ --extra-vars=@./extra_vars.yaml @@ -155,16 +158,21 @@ reboot-limit-baseline-kernelci: # Resets the boot counters so we start from scratch reboot-limit-baseline-reset: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/reboot-limit.yml \ - --tags vars,reset --extra-vars=@./extra_vars.yaml + --limit 'baseline' \ + playbooks/reboot-limit.yml \ + --tags vars,reset \ + --extra-vars=@./extra_vars.yaml # Below are the corresponding dev targets reboot-limit-dev-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/reboot-limit.yml \ - --tags vars,first_run,reset --extra-vars=@./extra_vars.yaml + --limit 'dev' \ + playbooks/reboot-limit.yml \ + --tags vars,first_run,reset \ + --extra-vars=@./extra_vars.yaml $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/reboot-limit.yml \ + --limit 'dev' \ + playbooks/reboot-limit.yml \ --tags vars,run_tests,copy_results \ --extra-vars=@./extra_vars.yaml @@ -176,7 +184,9 @@ reboot-limit-dev-kernelci: reboot-limit-dev-reset: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/reboot-limit.yml --tags vars,reset \ + --limit 'dev' \ + playbooks/reboot-limit.yml \ + --tags vars,reset \ --extra-vars=@./extra_vars.yaml reboot-limit-help-menu: diff --git a/workflows/fstests/Makefile b/workflows/fstests/Makefile index a5e307b..48790d9 100644 --- a/workflows/fstests/Makefile +++ b/workflows/fstests/Makefile @@ -138,19 +138,22 @@ endif endif fstests: $(FSTESTS_BASELINE_EXTRA) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -l localhost,baseline,dev \ - -i hosts playbooks/fstests.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'localhost:baseline:dev' \ + playbooks/fstests.yml \ --skip-tags run_tests,copy_results $(LIMIT_HOSTS) fstests-kdevops-setup: $(KDEVOPS_EXTRA_VARS) $(FSTESTS_BASELINE_EXTRA) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -l baseline,dev \ - -i hosts playbooks/fstests.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + playbooks/fstests.yml \ --tags vars,kdevops_fstests_setup,gendisks \ $(LIMIT_HOSTS) fstests-baseline: $(FSTESTS_BASELINE_EXTRA) $(Q)PYTHONUNBUFFERED=1 ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/fstests.yml \ + --limit 'baseline' \ + playbooks/fstests.yml \ --tags vars,run_tests,copy_results \ --extra-vars '{ $(FSTESTS_DYNAMIC_RUNTIME_VARS) }' \ --extra-vars=@./extra_vars.yaml $(LIMIT_HOSTS) @@ -163,7 +166,8 @@ fstests-baseline-kernelci: $(KDEVOPS_EXTRA_VARS) fstests-baseline-skip-kdevops-update: $(KDEVOPS_EXTRA_VARS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/fstests.yml \ + --limit 'baseline' \ + playbooks/fstests.yml \ --tags run_tests,copy_results \ --skip-tags git_update \ --extra-vars \ @@ -173,7 +177,8 @@ fstests-baseline-skip-kdevops-update: $(KDEVOPS_EXTRA_VARS) fstests-baseline-run-oscheck-only: $(KDEVOPS_EXTRA_VARS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/fstests.yml \ + --limit 'baseline' \ + playbooks/fstests.yml \ --tags run_tests,copy_results \ --skip-tags git_update,reboot,clean_results \ --extra-vars \ @@ -183,14 +188,14 @@ fstests-baseline-run-oscheck-only: $(KDEVOPS_EXTRA_VARS) fstests-config: $(KDEVOPS_EXTRA_VARS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/fstests.yml \ + --limit 'baseline' \ + playbooks/fstests.yml \ --tags vars,generate-fstests-config \ --extra-vars=@./extra_vars.yaml \ $(LIMIT_HOSTS) fstests-config-debug: $(KDEVOPS_EXTRA_VARS) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/fstests.yml \ -e 'fstests_debug_localhost=True' \ --tags vars,generate-fstests-config \ @@ -198,7 +203,8 @@ fstests-config-debug: $(KDEVOPS_EXTRA_VARS) fstests-dev: $(KDEVOPS_EXTRA_VARS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/fstests.yml \ + --limit 'dev' \ + playbooks/fstests.yml \ --tags vars,run_tests,copy_results \ --extra-vars \ '{ $(FSTESTS_DYNAMIC_RUNTIME_VARS) }' \ @@ -206,7 +212,8 @@ fstests-dev: $(KDEVOPS_EXTRA_VARS) fstests-baseline-results-tfb-ls: $(KDEVOPS_EXTRA_VARS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/fstests.yml \ + --limit 'baseline' \ + playbooks/fstests.yml \ --tags vars,tfb \ --skip-tags copy_final \ --extra-vars \ @@ -215,7 +222,8 @@ fstests-baseline-results-tfb-ls: $(KDEVOPS_EXTRA_VARS) fstests-baseline-results-tfb-trim: $(KDEVOPS_EXTRA_VARS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/fstests.yml \ + --limit 'baseline' \ + playbooks/fstests.yml \ --tags vars,tfb \ --skip-tags copy_final \ --extra-vars \ @@ -224,7 +232,8 @@ fstests-baseline-results-tfb-trim: $(KDEVOPS_EXTRA_VARS) fstests-baseline-results: $(KDEVOPS_EXTRA_VARS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/fstests.yml \ + --limit 'baseline' \ + playbooks/fstests.yml \ --tags copy_results,print_results,tfb \ --extra-vars '{ kdevops_run_fstests: True }' \ --extra-vars=@./extra_vars.yaml \ @@ -234,7 +243,8 @@ fstests-results: fstests-baseline-results fstests-dev-results: $(KDEVOPS_EXTRA_VARS) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/fstests.yml \ + --limit 'dev' \ + playbooks/fstests.yml \ --tags copy_results,print_results \ --extra-vars '{ kdevops_run_fstests: True }' \ --extra-vars=@./extra_vars.yaml \ diff --git a/workflows/gitr/Makefile b/workflows/gitr/Makefile index b8a1b3a..09ef466 100644 --- a/workflows/gitr/Makefile +++ b/workflows/gitr/Makefile @@ -90,13 +90,13 @@ endif gitr: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline,dev \ + --limit 'baseline:dev' \ --skip-tags run_tests,run_specific_tests,copy_results \ $(KDEVOPS_PLAYBOOKS_DIR)/gitr.yml gitr-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline \ + --limit 'baseline' \ --tags $(GITR_PLAY_TAGS) \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/gitr.yml @@ -109,7 +109,7 @@ gitr-baseline-kernelci: gitr-dev-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags $(GITR_PLAY_TAGS) \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/gitr.yml @@ -122,7 +122,7 @@ gitr-dev-kernelci: gitr-dev-reset: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags vars,reset \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/gitr.yml diff --git a/workflows/linux/Makefile b/workflows/linux/Makefile index 1e92264..18fd071 100644 --- a/workflows/linux/Makefile +++ b/workflows/linux/Makefile @@ -75,6 +75,7 @@ linux-help-menu: echo "linux-mount - Mounts 9p path on targets" ;\ fi @echo "linux-deploy - Builds, installs, updates GRUB and reboots - useful for rapid development" + @echo "linux-build - Builds kernel" @echo "linux-install - Only builds and installs Linux" @echo "linux-uninstall - Remove a kernel you can pass arguments for the version such as KVER=6.5.0-rc7-next-20230825" @echo "linux-clone - Only clones Linux" @@ -90,49 +91,63 @@ LINUX_HELP_EXTRA := PHONY += linux linux: $(KDEVOPS_NODES) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) PHONY += linux-mount linux-mount: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --tags vars,9p_mount \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) PHONY += linux-deploy linux-deploy: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --tags vars,build-linux,install-linux,manual-update-grub,saved,vars,reboot \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) +PHONY += linux-build +linux-build: + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + --tags vars,build-linux,saved,vars \ + --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) + PHONY += linux-install linux-install: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --tags vars,build-linux,install-linux \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) PHONY += linux-uninstall linux-uninstall: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --tags uninstall-linux,vars \ --extra-vars '{ "uninstall_kernel_enable": "True", $(LINUX_DYNAMIC_RUNTIME_VARS) }' \ $(LIMIT_HOSTS) linux-clone-clients: $(KDEVOPS_NODES) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) \ --tags vars,clone PHONY += linux-clone-9p linux-clone-9p: $(KDEVOPS_NODES) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ - --inventory localhost, \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'localhost' \ $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --extra-vars="$(BOOTLINUX_ARGS)" \ --tags vars,clone @@ -142,27 +157,30 @@ linux-clone: $(KDEVOPS_NODES) $(LINUX_CLONE_DEFAULT_TYPE) PHONY += linux-grub-setup linux-grub-setup: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) --tags manual-update-grub,saved,vars PHONY += linux-reboot linux-reboot: - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) --tags vars,reboot PHONY += uname uname: - $(Q)ansible 'baseline:dev' -i hosts -b -m command -a "uname -r" -o \ + $(Q)ansible 'baseline:dev' -b -m command -a "uname -r" -o \ | awk -F '|' '{gsub(/^ +| +$$/, "", $$2); printf "%-30s %s\n", $$1, $$4}' \ | sed -e 's|(stdout)||' ifeq (y,$(CONFIG_KDEVOPS_WORKFLOW_ENABLE_CXL)) PHONY += linux-cxl linux-cxl: $(KDEVOPS_NODES) - $(Q)ansible-playbook $(ANSIBLE_VERBOSE) -i \ - $(KDEVOPS_HOSTFILE) $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + --limit 'baseline:dev' \ + $(KDEVOPS_PLAYBOOKS_DIR)/bootlinux.yml \ --tags 'vars,cxl-build,cxl-install' \ --extra-vars="$(BOOTLINUX_ARGS)" $(LIMIT_HOSTS) diff --git a/workflows/ltp/Makefile b/workflows/ltp/Makefile index 081e836..ddbdf73 100644 --- a/workflows/ltp/Makefile +++ b/workflows/ltp/Makefile @@ -116,13 +116,13 @@ endif ltp: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline,dev \ + --limit 'baseline:dev' \ --skip-tags run_tests,copy_results \ $(KDEVOPS_PLAYBOOKS_DIR)/ltp.yml ltp-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline \ + --limit 'baseline' \ --tags vars,run_tests,copy_results \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/ltp.yml @@ -135,7 +135,7 @@ ltp-baseline-kernelci: ltp-dev-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags vars,run_tests,copy_results \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/ltp.yml @@ -148,7 +148,7 @@ ltp-dev-kernelci: ltp-dev-reset: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags vars,reset \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/ltp.yml diff --git a/workflows/mmtests/Makefile b/workflows/mmtests/Makefile index cfccd6b..06a75ea 100644 --- a/workflows/mmtests/Makefile +++ b/workflows/mmtests/Makefile @@ -6,42 +6,42 @@ endif mmtests: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/mmtests.yml \ + playbooks/mmtests.yml \ --extra-vars=@./extra_vars.yaml \ --tags deps,setup $(MMTESTS_ARGS) mmtests-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/mmtests.yml + -l baseline playbooks/mmtests.yml --extra-vars=@./extra_vars.yaml \ --tags run_tests \ $(MMTESTS_ARGS) mmtests-dev: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l dev playbooks/mmtests.yml \ + -l dev playbooks/mmtests.yml \ --extra-vars=@./extra_vars.yaml \ --tags run_tests \ $(MMTESTS_ARGS) mmtests-test: mmtests $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/mmtests.yml \ + playbooks/mmtests.yml \ --extra-vars=@./extra_vars.yaml \ --tags run_tests,results \ $(MMTESTS_ARGS) mmtests-results: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/mmtests.yml \ + playbooks/mmtests.yml \ --extra-vars=@./extra_vars.yaml \ --tags results \ $(MMTESTS_ARGS) mmtests-clean: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/mmtests.yml \ + playbooks/mmtests.yml \ --extra-vars=@./extra_vars.yaml \ --tags clean \ $(MMTESTS_ARGS) diff --git a/workflows/nfstest/Makefile b/workflows/nfstest/Makefile index 80c00c1..3945edf 100644 --- a/workflows/nfstest/Makefile +++ b/workflows/nfstest/Makefile @@ -73,13 +73,13 @@ endif nfstest: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline,dev \ + --limit 'baseline:dev' \ --skip-tags run_tests,copy_results \ $(KDEVOPS_PLAYBOOKS_DIR)/nfstest.yml nfstest-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline \ + --limit 'baseline' \ --tags vars,run_tests,copy_results \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/nfstest.yml @@ -92,7 +92,7 @@ nfstest-baseline-kernelci: nfstest-dev-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags vars,run_tests,copy_results \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/nfstest.yml @@ -105,7 +105,7 @@ nfstest-dev-kernelci: nfstest-dev-reset: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags vars,reset \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/nfstest.yml diff --git a/workflows/pynfs/Makefile b/workflows/pynfs/Makefile index dc4b29c..1dfd349 100644 --- a/workflows/pynfs/Makefile +++ b/workflows/pynfs/Makefile @@ -45,18 +45,18 @@ endif # Makefile for pynfs targets pynfs: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline,dev \ + --limit 'baseline:dev' \ --skip-tags run_tests,copy_results,clean_local_results \ $(KDEVOPS_PLAYBOOKS_DIR)/pynfs.yml pynfs-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline \ + --limit 'baseline' \ --tags vars,first_run,reset \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/pynfs.yml $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l baseline \ + --limit 'baseline' \ --tags vars,run_tests,copy_results \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/pynfs.yml @@ -75,12 +75,12 @@ pynfs-baseline-kernelci: # Below are the corresponding dev targets pynfs-dev-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags vars,first_run,reset \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/pynfs.yml $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags vars,run_tests,copy_results \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/pynfs.yml @@ -93,7 +93,7 @@ pynfs-dev-kernelci: pynfs-dev-reset: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) -l dev \ + --limit 'dev' \ --tags vars,reset \ --extra-vars=@./extra_vars.yaml \ $(KDEVOPS_PLAYBOOKS_DIR)/pynfs.yml diff --git a/workflows/selftests/Makefile b/workflows/selftests/Makefile index 075da61..d3b7044 100644 --- a/workflows/selftests/Makefile +++ b/workflows/selftests/Makefile @@ -33,24 +33,27 @@ include $(TOPDIR)/workflows/selftests/tests/Makefile.xarray selftests: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/selftests.yml \ + playbooks/selftests.yml \ --skip-tags run_tests,copy_results,check_results \ $(LIMIT_HOSTS) selftests-baseline: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/selftests.yml \ + --limit 'baseline' \ + playbooks/selftests.yml \ --extra-vars '{ $(SELFTESTS_DYNAMIC_RUNTIME_VARS) }' \ --tags vars,run_tests,copy_results,check_results $(LIMIT_HOSTS) selftests-results: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/selftests.yml \ + --limit 'baseline' \ + playbooks/selftests.yml \ --tags vars,copy_results,check_results $(LIMIT_HOSTS) selftests-check-results: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts -l baseline playbooks/selftests.yml \ + --limit 'baseline' \ + playbooks/selftests.yml \ --tags vars,check_results $(LIMIT_HOSTS) selftests-help-main: diff --git a/workflows/steady_state/Makefile b/workflows/steady_state/Makefile index 514bd47..66a4801 100644 --- a/workflows/steady_state/Makefile +++ b/workflows/steady_state/Makefile @@ -8,22 +8,22 @@ SSD_STEADY_STATE_DYNAMIC_RUNTIME_VARS := "kdevops_run_ssd_steady_state": True steady-state-files: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) playbooks/steady_state.yml \ + playbooks/steady_state.yml \ --extra-vars=@./extra_vars.yaml --tags vars,setup $(LIMIT_HOSTS) steady-state-prefill: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) playbooks/steady_state.yml \ + playbooks/steady_state.yml \ --extra-vars=@./extra_vars.yaml --tags vars,prefill $(LIMIT_HOSTS) steady-state-run: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) playbooks/steady_state.yml \ + playbooks/steady_state.yml \ --extra-vars=@./extra_vars.yaml --tags vars,steady_state $(LIMIT_HOSTS) steady-state: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i $(KDEVOPS_HOSTFILE) playbooks/steady_state.yml \ + playbooks/steady_state.yml \ --extra-vars '{ $(SSD_STEADY_STATE_DYNAMIC_RUNTIME_VARS) }' $(LIMIT_HOSTS) steady-state-help-menu: diff --git a/workflows/sysbench/Makefile b/workflows/sysbench/Makefile index 21cb297..daf7bc7 100644 --- a/workflows/sysbench/Makefile +++ b/workflows/sysbench/Makefile @@ -29,36 +29,36 @@ TAGS_SYSBENCH_RESULTS += results # Target to set up sysbench (MySQL or PostgreSQL) sysbench: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/sysbench.yml \ + playbooks/sysbench.yml \ --skip-tags $(subst $(space),$(comma),$(TAGS_SYSBENCH_RUN)) # Target to run sysbench tests (including telemetry) sysbench-test: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/sysbench.yml \ + playbooks/sysbench.yml \ --tags $(subst $(space),$(comma),$(TAGS_SYSBENCH_TEST)) # Optional target to collect telemetry sysbench-telemetry: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/sysbench.yml \ + playbooks/sysbench.yml \ --tags $(subst $(space),$(comma),$(TAGS_SYSBENCH_TELEMETRY)) # Optional target to collect all results sysbench-results: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/sysbench.yml \ + playbooks/sysbench.yml \ --tags $(subst $(space),$(comma),$(TAGS_SYSBENCH_RESULTS)) sysbench-clean: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/sysbench.yml \ + playbooks/sysbench.yml \ --tags vars,clean # Optional in case you want to improve graphing sysbench-plot: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ - -i hosts playbooks/sysbench.yml \ + playbooks/sysbench.yml \ --tags vars,plot # Help target to show available options -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 10/12] ansible_cfg: add support to change ansible.cfg file location 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (8 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 09/12] Makefile: use inventory from ansible.cfg Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 11/12] docs: ansible_cfg: add documentation Daniel Gomez ` (3 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> This adds support to change the Ansible Configuration filename and location via Kconfig. Ansible checks the ansible.cfg file using the following order [1]: * ANSIBLE_CONFIG (environment variable if set) * ansible.cfg (in the current directory) * ~/.ansible.cfg (in the home directory) * /etc/ansible/ansible.cfg In order to set a custom path, export the ANSIBLE_CONFIG [2] that points to the file selected in Kconfig. But only when the Kconfig option is not empty. In such case, let the user handle the ANSIBLE_CONFIG variable. [1] https://docs.ansible.com/ansible/latest/reference_appendices/ config.html#the-configuration-file [2] https://docs.ansible.com/ansible/latest/reference_appendices/ config.html#envvar-ANSIBLE_CONFIG In addition, fix verbose mode (V=1) for the ansible-playbook command by removing the extra @. Remove the file from MAINTAINERS list as it is autogenerated and not in tree. Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- MAINTAINERS | 1 - Makefile | 17 ++++++++++------- kconfigs/Kconfig.ansible_cfg | 23 +++++++++++++++++++++++ playbooks/roles/ansible_cfg/tasks/main.yml | 3 ++- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 3059120..d6f578c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -72,7 +72,6 @@ M: Daniel Gomez <da.gomez@samsung.com> L: kdevops@lists.linux.dev S: Maintained T: git https://github.com/linux-kdevops/kdevops.git -F: ansible.cfg F: kconfigs/Kconfig.ansible_cfg F: playbooks/ansible_cfg.yml F: playbooks/roles/ansible_cfg diff --git a/Makefile b/Makefile index 2bd3da4..4fc524a 100644 --- a/Makefile +++ b/Makefile @@ -26,6 +26,10 @@ KDEVOPS_NODES_ROLE_TEMPLATE_DIR := $(KDEVOPS_PLAYBOOKS_DIR)/roles/gen_nodes/tem export KDEVOPS_NODES_TEMPLATE := export KDEVOPS_MRPROPER := +ifneq ($(strip $(CONFIG_ANSIBLE_CFG_FILE)),) +ANSIBLE_CFG_FILE := $(shell echo $(CONFIG_ANSIBLE_CFG_FILE) | tr --delete '"') +export ANSIBLE_CONFIG := $(ANSIBLE_CFG_FILE) +endif ANSIBLE_INVENTORY_FILE := $(shell echo $(CONFIG_ANSIBLE_CFG_INVENTORY) | tr --delete '"') KDEVOPS_INSTALL_TARGETS := @@ -195,9 +199,8 @@ include scripts/gen-nodes.Makefile make -f scripts/build.Makefile help ;\ false) - -ansible.cfg: .config - @$(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ +$(ANSIBLE_CFG_FILE): .config + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ --inventory localhost, \ $(KDEVOPS_PLAYBOOKS_DIR)/ansible_cfg.yml \ --extra-vars=@./.extra_vars_auto.yaml @@ -216,7 +219,7 @@ playbooks/secret.yml: @echo "$(CONFIG_KDEVOPS_REG_TWOLINE_REGCODE_VAR): $(CONFIG_KDEVOPS_REG_TWOLINE_REGCODE)" >> $@ ifeq (y,$(CONFIG_KDEVOPS_ENABLE_DISTRO_EXTRA_ADDONS)) -$(KDEVOPS_EXTRA_ADDON_DEST): .config ansible.cfg $(KDEVOPS_EXTRA_ADDON_SOURCE) +$(KDEVOPS_EXTRA_ADDON_DEST): .config $(ANSIBLE_CFG_FILE) $(KDEVOPS_EXTRA_ADDON_SOURCE) $(Q)cp $(KDEVOPS_EXTRA_ADDON_SOURCE) $(KDEVOPS_EXTRA_ADDON_DEST) endif @@ -227,13 +230,13 @@ include scripts/bringup.Makefile endif DEFAULT_DEPS += $(ANSIBLE_INVENTORY_FILE) -$(ANSIBLE_INVENTORY_FILE): .config ansible.cfg $(KDEVOPS_HOSTS_TEMPLATE) +$(ANSIBLE_INVENTORY_FILE): .config $(ANSIBLE_CFG_FILE) $(KDEVOPS_HOSTS_TEMPLATE) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/gen_hosts.yml \ --extra-vars=@./extra_vars.yaml DEFAULT_DEPS += $(KDEVOPS_NODES) -$(KDEVOPS_NODES) $(KDEVOPS_VAGRANT): .config ansible.cfg $(KDEVOPS_NODES_TEMPLATE) +$(KDEVOPS_NODES) $(KDEVOPS_VAGRANT): .config $(ANSIBLE_CFG_FILE) $(KDEVOPS_NODES_TEMPLATE) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ $(KDEVOPS_PLAYBOOKS_DIR)/gen_nodes.yml \ --extra-vars=@./extra_vars.yaml @@ -264,7 +267,7 @@ mrproper: $(Q)rm -f $(KDEVOPS_NODES) $(Q)rm -f $(ANSIBLE_CFG_INVENTORY) $(KDEVOPS_MRPROPER) $(Q)rm -f .config .config.old extra_vars.yaml $(KCONFIG_YAMLCFG) - $(Q)rm -f ansible.cfg + $(Q)rm -f $(ANSIBLE_CFG_FILE) $(Q)rm -f playbooks/secret.yml $(KDEVOPS_EXTRA_ADDON_DEST) $(Q)rm -rf include $(Q)rm -rf guestfs diff --git a/kconfigs/Kconfig.ansible_cfg b/kconfigs/Kconfig.ansible_cfg index a05c8cb..dbd189f 100644 --- a/kconfigs/Kconfig.ansible_cfg +++ b/kconfigs/Kconfig.ansible_cfg @@ -18,6 +18,29 @@ config ANSIBLE_CFG_INVENTORY_SET_BY_CLI bool default $(shell, scripts/check-cli-set-var.sh KDEVOPS_HOSTS) +config ANSIBLE_CFG_FILE + string "Ansible configuration file" + output yaml + default "$(TOPDIR_PATH)/ansible.cfg" + help + Path and filename to the Ansible configuration file. + + This option lets you specify the path and filename for the Ansible + configuration file. If the specified file already exists, it will not + be overwritten. Otherwise, kdevops will generate one using the settings + defined in this Kconfig menu. + + If this option is left undefined or set to an empty string, kdevops + will not generate any configuration file. In that case, Ansible will + fall back to its own search order to locate a config file: + 1. The ANSIBLE_CONFIG environment variable (if set) + 2. ./ansible.cfg (in the current working directory) + 3. ~/.ansible.cfg (in the user's home directory) + 4. /etc/ansible/ansible.cfg (system-wide default) + + For more details, refer to the Ansible documentation: + https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file + menu "Ansible Callback Plugin Configuration" choice prompt "Ansible Callback Plugin" diff --git a/playbooks/roles/ansible_cfg/tasks/main.yml b/playbooks/roles/ansible_cfg/tasks/main.yml index 83a1659..c2b0db1 100644 --- a/playbooks/roles/ansible_cfg/tasks/main.yml +++ b/playbooks/roles/ansible_cfg/tasks/main.yml @@ -14,7 +14,8 @@ - name: Generate kdevops ansible.cfg ansible.builtin.template: src: "ansible.cfg.j2" - dest: "{{ topdir_path }}/ansible.cfg" + dest: "{{ ansible_cfg_file }}" + mode: '0755' - name: Update ansible.cfg access modification time so make sees it updated ansible.builtin.file: -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 11/12] docs: ansible_cfg: add documentation 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (9 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 10/12] ansible_cfg: add support to change ansible.cfg file location Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 12/12] build.Makefile: fix verbosity of clean target Daniel Gomez ` (2 subsequent siblings) 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> Add documentation file for the Ansible Configuration Module (ansible_cfg). Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- MAINTAINERS | 1 + docs/kdevops-ansible-configuration.md | 102 ++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index d6f578c..87273ca 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -72,6 +72,7 @@ M: Daniel Gomez <da.gomez@samsung.com> L: kdevops@lists.linux.dev S: Maintained T: git https://github.com/linux-kdevops/kdevops.git +F: docs/kdevops-ansible-configuration.md F: kconfigs/Kconfig.ansible_cfg F: playbooks/ansible_cfg.yml F: playbooks/roles/ansible_cfg diff --git a/docs/kdevops-ansible-configuration.md b/docs/kdevops-ansible-configuration.md new file mode 100644 index 0000000..c5d3a5d --- /dev/null +++ b/docs/kdevops-ansible-configuration.md @@ -0,0 +1,102 @@ +# kdevops Ansible Configuration + +The Ansible Configuration module in kdevops allows the user to configure the +[Ansible configuration file](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file) +, typically `ansible.cfg` (in kdevops `$TOPDIR_PATH` directory). This file +includes some Ansible settings such as the callback plugin and the Ansible +inventory file configuration (a comma-separated list). + + +## Ansible Configuration File (`ANSIBLE_CFG_FILE`) + +This setting allows the user to define a path and filename to the Ansible +configuration file. + +If the specified file already exists, it will not be overwritten. Otherwise, +kdevops will generate one using the Kconfig settings. + +Default: `$(TOPDIR_PATH)/ansible.cfg` + +See: [Ansible config file](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file) + + +## Ansible Inventory File (`ANSIBLE_CFG_INVENTORY`) + +Comma-separated list of Ansible inventory source paths. Each entry can be a path +to a file or directory. + +Example: `/path/to/hosts,/path/to/inventory_dir` + +This is written to the `[defaults]` section of the generated `ansible.cfg`: + +```ini +[defaults] +inventory = /path/to/hosts,/path/to/inventory_dir +``` + +Default: `$(TOPDIR_PATH)/hosts` + +See: [Ansible inventory sources](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default-host-list) + + +## Callback Plugin Configuration (`ANSIBLE_CFG_CALLBACK_PLUGIN*`) + +The callback plugin determines how Ansible output is displayed. You may select one of: + +- [debug](https://docs.ansible.com/ansible/latest/collections/ansible/posix/debug_callback.html): formatted stdout/stderr display +- [dense](https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html): minimal stdout output +- custom: this allows defining the plugin name manually + +See more plugins: +[Ansible callback plugins list](https://docs.ansible.com/ansible/latest/collections/index_callback.html) + +Also, see the Parameters section in the debug/dense for a description of the +callback plugin options. + + +## Python Interpreter Configuration (`ANSIBLE_CFG_INTERPRETER_PYTHON`) + +This allows selecting how Ansible discovers or uses a Python interpreter on target systems. + +Options include: + +- auto +- auto_legacy +- auto_legacy_client +- auto_silent +- custom: this allows defining the path manually + +See: +- [Interpreter Discovery](https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html#interpreter-discovery) +- [Using Python 3](https://docs.ansible.com/ansible/latest/reference_appendices/python_3_support.html#using-python-3-on-the-managed-machines-with-commands-and-playbooks) + +This option can be controlled via command line Makefile parameter `ANSIBLE_CFG_INTERPRETER_PYTHON`. + + +## Forks Configuration (`ANSIBLE_CFG_FORKS`) + +Control the number of parallel forks (concurrent tasks) Ansible may use. + +Default: 10 + +See: [Forks](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_strategies.html#setting-the-number-of-forks) + +This option can be controlled via command line Makefile parameter `ANSIBLE_CFG_FORKS`. + + +## Ansible Deprecation Warnings (`ANSIBLE_CFG_DEPRECATION_WARNINGS`) + +Toggle whether Ansible displays deprecation warnings. + +Default: Enabled + +See: [Deprecation warnings](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#deprecation-warnings) + + +## Ansible Reconnection Retries (`ANSIBLE_CFG_RECONNECTION_RETRIES`, OpenSUSE only) + +Number of SSH reconnection attempts. Ansible retries connections only on SSH return code 255. + +Default: 2000 + +See: [Reconnection retries](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/ssh_connection.html#parameter-reconnection_retries) -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 12/12] build.Makefile: fix verbosity of clean target 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (10 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 11/12] docs: ansible_cfg: add documentation Daniel Gomez @ 2025-07-24 19:36 ` Daniel Gomez 2025-07-25 14:03 ` [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Chuck Lever 2025-07-28 5:57 ` Daniel Gomez 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-24 19:36 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever; +Cc: kdevops, Daniel Gomez, Daniel Gomez From: Daniel Gomez <da.gomez@samsung.com> Fixes verbosity of the clean target. When used with new verbosity, it makes it fail as it tries to print the @ command. ==> [mrproper] + @rm -f *.o /bin/sh: 1: @rm: not found make[1]: *** [scripts/build.Makefile:7: clean] Error 127 make: *** [Makefile:267: mrproper] Error 2 Signed-off-by: Daniel Gomez <da.gomez@samsung.com> --- scripts/build.Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build.Makefile b/scripts/build.Makefile index 62aaccf..6fe5c11 100644 --- a/scripts/build.Makefile +++ b/scripts/build.Makefile @@ -4,7 +4,7 @@ PHONY += clean clean: $(clean-subdirs) $(Q)$(MAKE) -C scripts/kconfig/ clean - $(Q)@rm -f *.o $(obj-y) + $(Q)rm -f *.o $(obj-y) PHONY += mrproper mrproper: -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (11 preceding siblings ...) 2025-07-24 19:36 ` [PATCH v5 12/12] build.Makefile: fix verbosity of clean target Daniel Gomez @ 2025-07-25 14:03 ` Chuck Lever 2025-07-28 5:57 ` Daniel Gomez 13 siblings, 0 replies; 20+ messages in thread From: Chuck Lever @ 2025-07-25 14:03 UTC (permalink / raw) To: Daniel Gomez, Luis Chamberlain; +Cc: kdevops, Daniel Gomez On 7/24/25 3:36 PM, Daniel Gomez wrote: > Following Chuck's proposed changes to make task parallelism configurable > via the Ansible configuration file [1], and the subsequent cleanup > of ansible-playbook calls [2] along with the Python interpreter > improvements [3] to better support distros like NixOS through simplified > global interpreter configuration [4], I considered applying the same > approach to the inventory file. This would further streamline our > Ansible wrapper in the kdevops Makefiles. > > Why make this change? By specifying the inventory file (typically > 'hosts' file in kdevops) directly in ansible.cfg, we eliminate the > need for repeated -i/--inventory arguments and gain flexibility in > where the inventory file is located. This also supports the broader > sandboxing goal discussed in [5]. Moreover, by including localhost in > the inventory, we can clean up the Makefile wrapper even further by > removing --connection=localhost and -i localhost options, while also > enabling workflows to run directly on the controller node (with some > extra more modifications). > > https://lore.kernel.org/kdevops/20240827-ansible-cleanups-v1-0-2828a816de5e@samsung.com/ > > [1] > Increase default task parallelism > https://lore.kernel.org/kdevops/20250404204827.34941-1-cel@kernel.org/ > [2] > [PATCH 2/2] Makefile: Remove "-f 30" command line argument > https://lore.kernel.org/kdevops/20250417172119.3190398-2-cel@kernel.org/ > > [3] > https://lore.kernel.org/kdevops/20250404-python-interpreter-v1-0-04783b627ce7@samsung.com/ > > [4] > https://lore.kernel.org/kdevops/kwpt5iizzmryybpg6z3fgs6koak27rjggydfighd42wn7mxqja@2hwvtppppzsk/ > > [5] > https://lore.kernel.org/kdevops/20240827-ansible-cleanups-v1-0-2828a816de5e@samsung.com/ > > This series promotes the Ansible inventory file (typically 'hosts' > in kdevops) to the Ansible Configuration file (ansible.cfg). By doing > this, we allow to control the hosts globally rather than in all the > ansible-playbook commands, as well as clean up the ansible-playbook > command. > > So, we don't need to define anymore the inventory file in the command. > However, playbooks may still be controlled on which targets the playbook > is run. This is done through the playbook itself and/or through the > ansible-playbook argument --limit. Also notice delegate_to is needed > when the playbook runs and iterates on specific nodes such as baseline > and dev but a specific task needs to be handled back to the controller > node. > > As part of the series, the term 'all' to refer to all hosts is redefined > to include the localhost. This removes the need to be explicit with > localhost playbooks runs, as it's now just another target in the > inventory file. This term redefinition requires to change playbooks that > use the term all, either through ansible-playbook command or through > the host: field in the YAML playbook file. For this reason, the term > has been replaced in most cases with 'baseline:dev', which means all > targets in the inventory file in the baseline and dev groups, matching > the 'all' concept in the former configuration 'hosts' file. Except the > bootlinux.yml and guestfs.yml playbooks, all playbooks run either on > localhost or remote targets (the previous 'all' definition). Therefore, > all playbooks have been converted to use 'hosts: baseline:dev'. For > the bootlinux.yml playbook, 'all' is kept and the control of host > execution is done via the --limit argument. It was found that only > the linux-clone-9p target runs the bootlinux playbook in the localhost > while the rest of linux-* targets run the playbook in all the remotes > (baseline:dev). For guestfs.yml, a combination of --limit + delegate_to > is needed for the reason explained above: to iterate on the targets > (baseline:dev) but delegate certain tags to the controller node with > delegate_to. > > In addition, in order to help me debug this change, I found it > convenient to print the Makefile target name being run before the > command. This allows to be more explicit in verbose mode (V=1) when a > playbook is run (or any subsequent command in the target). And makes it > easier to discover which target the ansible-playbook command belongs to > when debugging playbook execution. To clarify, V=1 already prints the > command but not the Makefile target. The command output behaviour will > be a bit different as it is today as the command itself will be printed > in one line, instead of multiple. > > Series has been tested here: > v1: > https://github.com/linux-kdevops/kdevops/actions/runs/14773869477 > v3: > https://github.com/linux-kdevops/kdevops/actions/runs/14846101950 > v4: > https://github.com/linux-kdevops/kdevops/actions/runs/16033723055 > v5: > https://github.com/linux-kdevops/kdevops/actions/runs/16506085205 > > Signed-off-by: Daniel Gomez <da.gomez@samsung.com> > --- > Changes in v5: > - Rebase on top of main as of 2025-07-24 > - Update the new mmtests and stead_state Makefiles accordingly > - Test gitr and nfstest workflows with nfsd enabled > - Test pynfs workflow with iscsi service > - Fix spelling reported by Chuck > - Fix Ansible WARNING when generating ansible.cfg reported by Chuck. > Revert to specify inventory and target. After all, we can't leverage the > inventory in ansible.cfg as it's not generated yet > - Replace hosts field baseline:dev with iscsi in playbooks/iscsi.yml and > do the same for kdc, krb5 and nfsd, smbd playbooks. This also allows to > remove --limit from their ansible-playbook incantations > - Fix duplicate name field in playbooks/nfstest.yml > - Fix workflows that depend on nfsd, iscsi, smbd, kdc, krb5 guests by > introducing a new group "service", and use it for bringup operations and > SSH wait in $KDEVOPS_PROVISIONED_SSH (.provisioned_once_ssh) target. > Reported by Chuck > - Link to v4: https://lore.kernel.org/r/20250702-ansible_cfg_inventory-v4-0-67a54babd404@samsung.com > > Changes in v4: > - Add trailers (from Luis) > - Rebase on top of main > - Link to v3: https://lore.kernel.org/r/20250505-ansible_cfg_inventory-v3-0-a153d93c35c4@samsung.com > > Changes in v3: > - Fix LIMIT_HOSTS. When HOSTS="host1" was used, the --limit replacement > did not work anymore because of the quotes where not needed when using > long form arguments > - Fix bootlinux-local limit in linux target. > - Replace all:!localhost with baseline:dev as suggested by Luis. This > allows to include localhost as part of the baseline and/or dev groups > for baremetal workflows > - Allow to configure the ansible.cfg location. This requires to export > the ANSIBLE_CONFIG. This also enables sandboxing > - Fix debug mode when ansible.cfg is created (command was not printed > because of double @) > - Add back KDEVOPS_HOSTS as cli option. KDEVOPS_HOSTS was not part of > the cli before but it was allowed to be overwritten at command line > time. This allows to be explicit and keeps backwards compatibility with > the variable > - Extend ANSIBLE_CFG_FILE help as per Chuck's suggestion > - Move ANSIBLE_CFG_FILE location in Kconfig and place it after > SET_BY_CLI options > - Remove crash_watchdog.py inventory arguments (Reported by Luis) > - Remove inventory arguments from docs, READMEs and remaining Makefiles > - Move ueh_hosts hunk to fix undefined variable in patch "gen_hosts: > templates: add localhost to all hosts" > - Rename CONFIG_KDEVOPS_ANSIBLE_INVENTORY_FILE to CONFIG_ANSIBLE_CFG_INVENTORY > in scripts/lib.sh and kconfigs/Kconfig.ansible_provisioning > - Update cover letter reasoning and commit messages for better clarity > - Link to v2: https://lore.kernel.org/r/20250502-ansible_cfg_inventory-v2-0-d3c19ff4aa6e@samsung.com > > Changes in v2: > - Update ANSIBLE_CFG_INVENTORY help description as per Chuck suggestion > - Add docs/kdevops-ansible-configuration.md for extensive module > documentation > - Include fix to avoid generating always the ansible.cfg and hosts > files. Reported by Chuck > The same commit change also includes support to change the ansible.cfg > path. > - Link to v1: https://lore.kernel.org/r/20250501-ansible_cfg_inventory-v1-0-c568bbaa3502@samsung.com > > --- > Daniel Gomez (12): > playbooks: fix playbook name for all hosts plays > playbooks: fix playbook name for localhost plays > Makefile: use long form of limit argument for clarity > Makefile: print target when debug > .github/workflows/fstests.yml: enable make verbosity > ansible_cfg: add inventory support > gen_hosts: add service group to inventory templates > gen_hosts: templates: include localhost in the all group > Makefile: use inventory from ansible.cfg > ansible_cfg: add support to change ansible.cfg file location > docs: ansible_cfg: add documentation > build.Makefile: fix verbosity of clean target > > .github/workflows/fstests.yml | 16 ++-- > MAINTAINERS | 2 +- > Makefile | 41 +++++---- > Makefile.btrfs_progs | 4 +- > Makefile.build_qemu | 12 +-- > Makefile.hypervisor-tunings | 3 +- > Makefile.kdevops | 19 ++-- > Makefile.linux-mirror | 6 +- > Makefile.postfix | 3 +- > docs/kdevops-ansible-configuration.md | 102 +++++++++++++++++++++ > docs/kdevops-terraform.md | 2 +- > kconfigs/Kconfig.ansible_cfg | 46 ++++++++++ > kconfigs/Kconfig.ansible_provisioning | 8 +- > playbooks/blktests.yml | 3 +- > playbooks/bootlinux.yml | 3 +- > playbooks/build_qemu.yml | 3 +- > playbooks/common.yml | 3 +- > playbooks/create_data_partition.yml | 3 +- > playbooks/cxl.yml | 3 +- > playbooks/devconfig.yml | 3 +- > playbooks/fstests.yml | 6 +- > playbooks/gen-pci-kconfig.yml | 3 +- > playbooks/gen_hosts.yml | 3 +- > playbooks/gen_nodes.yml | 3 +- > playbooks/gen_tfvars.yml | 3 +- > playbooks/gitr.yml | 3 +- > playbooks/hypervisor-tuning.yml | 3 +- > playbooks/install-menuconfig-deps.yml | 3 +- > playbooks/install_systemd_journal_remote.yml | 3 +- > playbooks/install_systemd_timesyncd.yml | 3 +- > playbooks/install_terraform.yml | 3 +- > playbooks/install_vagrant_boxes.yml | 3 +- > playbooks/iscsi.yml | 3 +- > playbooks/kdc.yml | 3 +- > playbooks/kdevops_archive.yml | 3 +- > playbooks/krb5.yml | 3 +- > playbooks/ktls.yml | 3 +- > playbooks/libvirt_pcie_passthrough.yml | 3 +- > playbooks/libvirt_storage_pool_create.yml | 3 +- > playbooks/libvirt_user.yml | 3 +- > playbooks/linux-mirror.yml | 3 +- > playbooks/ltp.yml | 3 +- > playbooks/nfsd.yml | 3 +- > playbooks/nfstest.yml | 3 +- > playbooks/pkg.yml | 3 +- > playbooks/postfix_relay_host.yml | 3 +- > playbooks/pynfs.yml | 3 +- > playbooks/reboot-limit.yml | 3 +- > playbooks/roles/ansible_cfg/tasks/main.yml | 3 +- > .../roles/ansible_cfg/templates/ansible.cfg.j2 | 1 + > playbooks/roles/bootlinux/README.md | 12 +-- > playbooks/roles/common/README.md | 2 +- > playbooks/roles/devconfig/README.md | 2 +- > playbooks/roles/gen_hosts/defaults/main.yml | 1 - > playbooks/roles/gen_hosts/tasks/main.yml | 54 +++++------ > playbooks/roles/gen_hosts/templates/blktests.j2 | 1 + > playbooks/roles/gen_hosts/templates/cxl.j2 | 1 + > playbooks/roles/gen_hosts/templates/fstests.j2 | 16 ++++ > playbooks/roles/gen_hosts/templates/gitr.j2 | 10 ++ > playbooks/roles/gen_hosts/templates/hosts.j2 | 11 +++ > playbooks/roles/gen_hosts/templates/ltp.j2 | 1 + > playbooks/roles/gen_hosts/templates/nfstest.j2 | 10 ++ > playbooks/roles/gen_hosts/templates/pynfs.j2 | 8 ++ > playbooks/roles/gen_hosts/templates/selftests.j2 | 1 + > playbooks/roles/gen_hosts/templates/sysbench.j2 | 1 + > playbooks/roles/guestfs/tasks/main.yml | 6 ++ > playbooks/roles/libvirt_user/README.md | 4 +- > playbooks/roles/pkg/README.md | 2 +- > playbooks/roles/update_etc_hosts/tasks/main.yml | 2 +- > playbooks/rxe.yml | 3 +- > playbooks/selftests.yml | 3 +- > playbooks/siw.yml | 3 +- > playbooks/smbd.yml | 3 +- > playbooks/sysbench.yml | 3 +- > playbooks/terraform.yml | 4 +- > playbooks/update_etc_hosts.yml | 3 +- > playbooks/update_ssh_config_guestfs.yml | 3 +- > playbooks/update_ssh_config_vagrant.yml | 3 +- > scripts/archive.Makefile | 3 +- > scripts/build.Makefile | 2 +- > scripts/devconfig.Makefile | 8 +- > scripts/dynamic-pci-kconfig.Makefile | 3 +- > scripts/firstconfig.Makefile | 5 +- > scripts/gen-hosts.Makefile | 1 - > scripts/guestfs.Makefile | 19 ++-- > scripts/install-menuconfig-deps.Makefile | 3 +- > scripts/iscsi.Makefile | 1 - > scripts/journal-server.Makefile | 23 +++-- > scripts/kotd.Makefile | 16 ++-- > scripts/krb5.Makefile | 2 - > scripts/ktls.Makefile | 1 - > scripts/lib.sh | 2 +- > scripts/nfsd.Makefile | 1 - > scripts/provision.Makefile | 5 +- > scripts/rdma.Makefile | 2 - > scripts/smbd.Makefile | 1 - > scripts/systemd-timesync.Makefile | 8 +- > scripts/terraform.Makefile | 6 +- > scripts/update_etc_hosts.Makefile | 2 +- > scripts/vagrant.Makefile | 10 +- > scripts/workflows/lib/crash.py | 4 +- > workflows/blktests/Makefile | 20 ++-- > workflows/common/Makefile | 2 +- > workflows/cxl/Makefile | 14 +-- > workflows/demos/reboot-limit/Makefile | 32 ++++--- > workflows/fstests/Makefile | 40 +++++--- > workflows/gitr/Makefile | 8 +- > workflows/linux/Makefile | 60 +++++++----- > workflows/ltp/Makefile | 8 +- > workflows/mmtests/Makefile | 12 +-- > workflows/nfstest/Makefile | 8 +- > workflows/pynfs/Makefile | 12 +-- > workflows/selftests/Makefile | 11 ++- > workflows/steady_state/Makefile | 8 +- > workflows/sysbench/Makefile | 12 +-- > 115 files changed, 601 insertions(+), 323 deletions(-) > --- > base-commit: df5f66ca52a8dd0794c4c0ea72c1068643a18279 > change-id: 20250430-ansible_cfg_inventory-7955944ce8ff > > Best regards, > -- > Daniel Gomez <da.gomez@samsung.com> > > Reviewed-by: Chuck Lever <chuck.lever@oracle.com> -- Chuck Lever ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez ` (12 preceding siblings ...) 2025-07-25 14:03 ` [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Chuck Lever @ 2025-07-28 5:57 ` Daniel Gomez 13 siblings, 0 replies; 20+ messages in thread From: Daniel Gomez @ 2025-07-28 5:57 UTC (permalink / raw) To: Luis Chamberlain, Chuck Lever, Daniel Gomez; +Cc: kdevops On Thu, 24 Jul 2025 21:36:06 +0200, Daniel Gomez wrote: > Following Chuck's proposed changes to make task parallelism configurable > via the Ansible configuration file [1], and the subsequent cleanup > of ansible-playbook calls [2] along with the Python interpreter > improvements [3] to better support distros like NixOS through simplified > global interpreter configuration [4], I considered applying the same > approach to the inventory file. This would further streamline our > Ansible wrapper in the kdevops Makefiles. > > [...] Applied, thanks! [01/12] playbooks: fix playbook name for all hosts plays commit: 118a9d7020892acd86fe67a3f279c88592aaa691 [02/12] playbooks: fix playbook name for localhost plays commit: 35f8e3251fdfe54bc9d96a5904999bf99af3083d [03/12] Makefile: use long form of limit argument for clarity commit: 4b451118401dbdc8889417a08930861641dc016c [04/12] Makefile: print target when debug commit: 3c623312d4587f940bf9f7b8c60d739257a91af8 [05/12] .github/workflows/fstests.yml: enable make verbosity commit: 180318a1f119f5f6315caae8e12491741698c1b7 [06/12] ansible_cfg: add inventory support commit: c8ceb41299125696adc413b6fbfcd925ce042bd3 [07/12] gen_hosts: add service group to inventory templates commit: 7258480719e7ea127a14aacb7d7b9983b8347864 [08/12] gen_hosts: templates: include localhost in the all group commit: 1cf0800c9ffced98da393e5d2b1594302d23eb78 [09/12] Makefile: use inventory from ansible.cfg commit: 0987c30034c99511421c60581dd4b688549b532e [10/12] ansible_cfg: add support to change ansible.cfg file location commit: f6e1769b9d85e3fc21c8ea49360612608b7e98f1 [11/12] docs: ansible_cfg: add documentation commit: 8a447b1eef67ba02abfa0104df1c56361273bb3b [12/12] build.Makefile: fix verbosity of clean target commit: ee694caf05a590bdc4f63f823d309e4fcf1a9a40 Best regards, -- Daniel Gomez <da.gomez@samsung.com> ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2025-07-28 5:57 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-07-24 19:36 [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 01/12] playbooks: fix playbook name for all hosts plays Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 02/12] playbooks: fix playbook name for localhost plays Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 03/12] Makefile: use long form of limit argument for clarity Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 04/12] Makefile: print target when debug Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 05/12] .github/workflows/fstests.yml: enable make verbosity Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 06/12] ansible_cfg: add inventory support Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 07/12] gen_hosts: add service group to inventory templates Daniel Gomez 2025-07-24 19:51 ` Luis Chamberlain 2025-07-25 8:13 ` Daniel Gomez 2025-07-24 20:02 ` Chuck Lever 2025-07-25 8:36 ` Daniel Gomez 2025-07-25 14:00 ` Chuck Lever 2025-07-24 19:36 ` [PATCH v5 08/12] gen_hosts: templates: include localhost in the all group Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 09/12] Makefile: use inventory from ansible.cfg Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 10/12] ansible_cfg: add support to change ansible.cfg file location Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 11/12] docs: ansible_cfg: add documentation Daniel Gomez 2025-07-24 19:36 ` [PATCH v5 12/12] build.Makefile: fix verbosity of clean target Daniel Gomez 2025-07-25 14:03 ` [PATCH v5 00/12] Define Ansible inventory in the Ansible Configuration file Chuck Lever 2025-07-28 5:57 ` Daniel Gomez
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox