From patchwork Mon Feb 3 15:55:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Gomez X-Patchwork-Id: 13957749 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F645209F5E for ; Mon, 3 Feb 2025 15:55:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=210.118.77.11 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738598140; cv=none; b=oJiTwhViZQnPpdso+a0T1eDgkLtDrRvATPXxlngizy8PerXI3zf4tv8/YFMosAIBUGQmkD3M2csFhbrTOZeOeh1sJ01NmfH/16LhVUk/NuhczEPOUs6My/12DHiKMeJBCpk4KWaOLgWvLwCeIX3d3Pz7+XTnpv5r3wh/pHkPvtY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738598140; c=relaxed/simple; bh=1+sQPA8mTo+jsTBCh/iyZEU7SMziQspMmdzASTQ69h8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID: In-Reply-To:To:CC:References; b=kd2+U2A92yB8DDQSGTUMl5dQPDSv/Ex+9LxH05TzR2CR7l1+eiNCHo14rvhEfwidiutD39P4jaIuWOLM6PePzy3FomleMofo5CrYQbwzY6JwNzqzK8wUUEkI4Y6PKuznwRbMrmRV5tNx5xbjzj/vmj7ztnGUEWGzgkOEBhnz9IE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=UZq+GeJC; arc=none smtp.client-ip=210.118.77.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="UZq+GeJC" Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20250203155535euoutp01d9ecb591bf37ebea5e4f3765041d0d36~gvcrxfgRN3244132441euoutp011 for ; Mon, 3 Feb 2025 15:55:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20250203155535euoutp01d9ecb591bf37ebea5e4f3765041d0d36~gvcrxfgRN3244132441euoutp011 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1738598135; bh=3G1a1D1WsHXvV/oG390244+Fy3oQMOTbJ8zT2/ze2Os=; h=From:Date:Subject:In-Reply-To:To:CC:References:From; b=UZq+GeJCIa9vX3mLtkyaPGBz7F26LLqBOgYn8UzIhWp9balFeAZoYII8wTpGbhyJw Srjsioylt5asbnOuGsGUsNHSJV/moVt0pNzITNMRGZcrWOT+rA7oGCOQr3c95ymA/9 CpYmbLYt46K1n+WGmjV7rK8hMVdmKFeMhtLcrTg4= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20250203155535eucas1p1540570a3070dbe7d6d92d1436e1a2ee8~gvcro81Hl0406904069eucas1p1E; Mon, 3 Feb 2025 15:55:35 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 7E.5E.20409.7F6E0A76; Mon, 3 Feb 2025 15:55:35 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20250203155534eucas1p15ab37b4283ce9765d2dc346cb676499d~gvcq3ftYe1916519165eucas1p1K; Mon, 3 Feb 2025 15:55:34 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20250203155534eusmtrp103da2013b9fb937c525d0c744c777cb3~gvcq3FyRA1857618576eusmtrp1B; Mon, 3 Feb 2025 15:55:34 +0000 (GMT) X-AuditID: cbfec7f4-c0df970000004fb9-34-67a0e6f7bdc9 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id A6.CF.19920.6F6E0A76; Mon, 3 Feb 2025 15:55:34 +0000 (GMT) Received: from CAMSPWEXC02.scsc.local (unknown [106.1.227.4]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20250203155534eusmtip2180f5aa023f17dcd456ba1df96bcca5f~gvcqsfwZE0513305133eusmtip23; Mon, 3 Feb 2025 15:55:34 +0000 (GMT) Received: from localhost (106.110.32.87) by CAMSPWEXC02.scsc.local (106.1.227.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.1118.40; Mon, 3 Feb 2025 15:55:33 +0000 From: Daniel Gomez Date: Mon, 3 Feb 2025 16:55:18 +0100 Subject: [PATCH 1/2] ansible.cfg: autogenerate using kconfig Precedence: bulk X-Mailing-List: kdevops@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <20250203-ansible_cfg3-v1-1-a9e75cd067d7@samsung.com> In-Reply-To: <20250203-ansible_cfg3-v1-0-a9e75cd067d7@samsung.com> To: Luis Chamberlain CC: , Daniel Gomez X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1738598132; l=13062; i=da.gomez@samsung.com; s=20240621; h=from:subject:message-id; bh=1+sQPA8mTo+jsTBCh/iyZEU7SMziQspMmdzASTQ69h8=; b=CT4qM7VEsFM52e9uf1dX8qTQwNRUuKjUR7xAFAovP//UI7IQcJUayqi2z/IOIUWorsLO0LPHu nb4aCBm5E7HAS6pb2vssRW2w+uHbQouUFm91SUIa7aLNAIJvSzO9rhJ X-Developer-Key: i=da.gomez@samsung.com; a=ed25519; pk=BqYk31UHkmv0WZShES6pIZcdmPPGay5LbzifAdZ2Ia4= X-ClientProxiedBy: CAMSVWEXC01.scsc.local (106.1.227.71) To CAMSPWEXC02.scsc.local (106.1.227.4) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNIsWRmVeSWpSXmKPExsWy7djP87rfny1IN7jfxGfxc81LZosbE54y OjB5bFrVyebxYvNMxgCmKC6blNSczLLUIn27BK6MMx2fmQo60iqm9z5kaWA8Ht7FyMkhIWAi cfjOK6YuRi4OIYEVjBI9L46xQDhfGCX+7p4H5XxmlJh28jZbFyMHWMvtfUIQ8eWMEucPrmWG cD4xSnx+spURwnnAKPFmXxcLyBI2AU2JfSc3sYPYLAIqEjeXT2IDsYUFbCTubO0Fq+EVEJQ4 OfMJC8gGZqD69bv0QcLMAvISzVtnM0OUOEocWjQPzOYUcJK4eHc3E4gtIqAhsW9CLxNEvZPE yUlX2SB+E5X4PXkX2AcSAgeYJB7OfsQEkUiVWPHoDjOErSgxY+JKFojPkiQaX6RC1J/hkJj7 aBEjRI2LxLq/t6FsYYlXx7ewQ9gyEqcn97BA2NkSZ7/vgaopkfj34RdU3Fri/9q7UHFHiZ0L 1kJDkU/ixlvBCYxqs5B8Pwvh+1lIvl/AyLyKUTy1tDg3PbXYKC+1XK84Mbe4NC9dLzk/dxMj MD2c/nf8yw7G5a8+6h1iZOJgPMQowcGsJMJ7evuCdCHelMTKqtSi/Pii0pzU4kOM0hwsSuK8 i/a3pgsJpCeWpGanphakFsFkmTg4pRqYovQ4qncHH9Tp1ryhGu98JebZs4Uf1yTEFiRlSTSY eRvvrixynVVv6P7z5Pozv+Q0tM03PljAETkpkbO3Vm1aeFn+PZ+mfKtZLas8DrzjnfzgeYn9 st7yI+L/zkVobKsNdGF7cJGNx2ZnwYspgR91qxfJvkgy/OD0o6CwZpkTd9P+VY3vli7P73rv 9W9O5yplQQ37b5uL5VhmPeGKf1JUnNQf7b8n5/z/nblRJ2w6fQMXh20wsps3o/5C/4YXLqpn T09x+y40u2CVdK3/zM/fOJYm1gmeUlwofOj1NbbLe/+HqXDsOrpLKNo4NbdQ3CAxriMxe4Gt 0/Ta2VecfN93HImvX6FmcWUDr3ni/2lKLMUZiYZazEXFiQA14ttHfgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRmVeSWpSXmKPExsVy+t/xe7rfni1IN+jfJG3xc81LZosbE54y OjB5bFrVyebxYvNMxgCmKD2bovzSklSFjPziElulaEMLIz1DSws9IxNLPUNj81grI1MlfTub lNSczLLUIn27BL2MMx2fmQo60iqm9z5kaWA8Ht7FyMEhIWAicXufUBcjF4eQwFJGiWWr9jF3 MXICxWUkNn65ygphC0v8udbFBlH0gVHi+o5l7BDOA0aJh3c+s4NUsQloSuw7uQnMZhFQkbi5 fBIbiC0sYCNxZ2svC4jNKyAocXLmExaQzcxA9et36YOEmQXkJZq3zmaGKHGUOLRoHpgtBGS3 9C4DszkFnCQu3t3NBGKLCGhI7JvQywTR6yRxctJVNohDRSV+T97FAmEfYJI4+t8fwk6V2H5l CVSNosSMiSuhapIkjjbPY53AKDYLyXWzEK6bheS6BYzMqxhFUkuLc9Nziw31ihNzi0vz0vWS 83M3MQJjbduxn5t3MM579VHvECMTB+MhRgkOZiUR3tPbF6QL8aYkVlalFuXHF5XmpBYfYjQF htBEZinR5HxgtOeVxBuaGZgamphZGphamhkrifO6XT6fJiSQnliSmp2aWpBaBNPHxMEp1cDE llZRENzc7sO0YErB+bfR7b8lvMSE7gbNb8/xqYq9HBz8wC9IbcZNv897udwTJ1/em7n8sPJl Ww5flpxvSoanHkfzX+wWPPvp6wuLN3+ML4eufrb9tl5+dn2x/IWmj4uf5Byfe7nqsOwt3XWm LqeNxVYeW/PLXndCgR17ES/TzWVsJZt/vvd//4sxJ6xpyYzVLZbi6ze98zKMfOxfecuUfcW/ VaUXWd17lKfJXS4RP+X5KqTnSabkuk2nws+/kcpJ0OBp7C+8/XtuV63vZW2BKYfVXlk/XFZy I7o41bVssuBKnjYbkSenVWrFoyd3e5Ur9R6OyeIUeMjmvM2Mt3HNLe8NM5LnMLzgbFtR2qjE UpyRaKjFXFScCAC9JgpAPgMAAA== X-CMS-MailID: 20250203155534eucas1p15ab37b4283ce9765d2dc346cb676499d X-Msg-Generator: CA X-RootMTR: 20250203155534eucas1p15ab37b4283ce9765d2dc346cb676499d X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20250203155534eucas1p15ab37b4283ce9765d2dc346cb676499d References: <20250203-ansible_cfg3-v1-0-a9e75cd067d7@samsung.com> Add a new ansible.cfg Makefile target, Ansible Playbook and Role to be able to configure the Ansible Configuration file (ansible.cfg) using Kconfig. This generate the ansible.cfg based on the same current settings. Add the new Ansible files (playbooks, cfg, Kconfig...) to the Ansible Wrapper maintainer entry. Move retries to [connection] ini section as per documentation [1]. [1] https://docs.ansible.com/ansible/latest/collections/ansible/builtin/ ssh_connection.html#parameter-reconnection_retries From commit 1961b177a9464423a24cd110f94682def7927331 ("ansible.cfg: bump retries to 2000"), this setting was required for OpenSUSE Tumbleweed. So, apply it only for this distro. Signed-off-by: Daniel Gomez --- .gitignore | 2 + MAINTAINERS | 4 + Makefile | 17 +++- ansible.cfg | 5 - kconfigs/Kconfig.ansible_cfg | 105 +++++++++++++++++++++ kconfigs/Kconfig.kdevops | 4 + playbooks/ansible_cfg.yml | 4 + playbooks/roles/ansible_cfg/defaults/main.yml | 9 ++ playbooks/roles/ansible_cfg/tasks/main.yml | 17 ++++ .../roles/ansible_cfg/templates/ansible.cfg.j2 | 14 +++ 10 files changed, 172 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index c34739832c6501104c9c8bce9c31e87dfd9bcfb0..0ec5d2de89a943c903c3975bf607b72a6604fbb0 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,8 @@ extra_vars.json .config .config.old +ansible.cfg + scripts/kconfig/.mconf-cfg scripts/workflows/fstests/lib/__pycache__/ scripts/workflows/blktests/lib/__pycache__/ diff --git a/MAINTAINERS b/MAINTAINERS index 045d8c96208ef8f3f1c5d74d023a5117529511cf..6df6709fb59d14ba486050d2ce961923b292ec73 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -72,6 +72,10 @@ M: Daniel Gomez 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 F: scripts/ansible_av.py F: scripts/ansible.Makefile diff --git a/Makefile b/Makefile index 14e647dcd45190ff51dd42627f58826998f07781..fa8761bcb6bc2c612ef7bff4f904c94ca258d523 100644 --- a/Makefile +++ b/Makefile @@ -190,9 +190,17 @@ include scripts/gen-nodes.Makefile make -f scripts/build.Makefile help ;\ false) + +PHONY += ansible.cfg +ansible.cfg: + @$(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ + --inventory localhost, \ + $(KDEVOPS_PLAYBOOKS_DIR)/ansible_cfg.yml \ + --extra-vars=@./.extra_vars_auto.yaml + PHONY += $(EXTRA_VAR_INPUTS) $(EXTRA_VAR_INPUTS_LAST) -$(KDEVOPS_EXTRA_VARS): .config $(EXTRA_VAR_INPUTS) $(EXTRA_VAR_INPUTS_LAST) +$(KDEVOPS_EXTRA_VARS): .config ansible.cfg $(EXTRA_VAR_INPUTS) $(EXTRA_VAR_INPUTS_LAST) playbooks/secret.yml: @if [[ "$(CONFIG_KDEVOPS_REG_TWOLINE_REGCODE)" == "" ]]; then \ @@ -204,7 +212,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 $(KDEVOPS_EXTRA_ADDON_SOURCE) +$(KDEVOPS_EXTRA_ADDON_DEST): .config ansible.cfg $(KDEVOPS_EXTRA_ADDON_SOURCE) $(Q)cp $(KDEVOPS_EXTRA_ADDON_SOURCE) $(KDEVOPS_EXTRA_ADDON_DEST) endif @@ -215,7 +223,7 @@ include scripts/bringup.Makefile endif DEFAULT_DEPS += $(KDEVOPS_HOSTS) -$(KDEVOPS_HOSTS): .config $(KDEVOPS_HOSTS_TEMPLATE) +$(KDEVOPS_HOSTS): .config ansible.cfg $(KDEVOPS_HOSTS_TEMPLATE) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ --inventory localhost, \ $(KDEVOPS_PLAYBOOKS_DIR)/gen_hosts.yml \ @@ -223,7 +231,7 @@ $(KDEVOPS_HOSTS): .config $(KDEVOPS_HOSTS_TEMPLATE) --extra-vars=@./extra_vars.yaml DEFAULT_DEPS += $(KDEVOPS_NODES) -$(KDEVOPS_NODES) $(KDEVOPS_VAGRANT): .config $(KDEVOPS_NODES_TEMPLATE) +$(KDEVOPS_NODES) $(KDEVOPS_VAGRANT): .config ansible.cfg $(KDEVOPS_NODES_TEMPLATE) $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \ --inventory localhost, \ $(KDEVOPS_PLAYBOOKS_DIR)/gen_nodes.yml \ @@ -253,6 +261,7 @@ mrproper: $(Q)rm -f $(KDEVOPS_NODES) $(Q)rm -f $(KDEVOPS_HOSTFILE) $(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) $(Q)rm -rf include $(Q)rm -rf guestfs diff --git a/ansible.cfg b/ansible.cfg deleted file mode 100644 index 08350e0cf0f33e650801f4d8a2b450c77ef22a97..0000000000000000000000000000000000000000 --- a/ansible.cfg +++ /dev/null @@ -1,5 +0,0 @@ -[defaults] -display_skipped_hosts = no -retries = 2000 -deprecation_warnings=False -stdout_callback=debug diff --git a/kconfigs/Kconfig.ansible_cfg b/kconfigs/Kconfig.ansible_cfg new file mode 100644 index 0000000000000000000000000000000000000000..1b2885189dfb6a11c09a0ef4ddafa6889f4c26f2 --- /dev/null +++ b/kconfigs/Kconfig.ansible_cfg @@ -0,0 +1,105 @@ +menu "Ansible Callback Plugin Configuration" +choice + prompt "Ansible Callback Plugin" + default KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_DEBUG + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_DEBUG + bool "Ansible Debug Callback Plugin" + output yaml + help + Debug: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/debug_module.html + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_DENSE + bool "Ansible Dense Callback Plugin" + output yaml + help + Dense: https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html + +endchoice + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_STRING + string + output yaml + default "debug" if KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_DEBUG + default "dense" if KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_DENSE + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_CHECK_MODE_MARKERS + bool "check_mode_markers" + output yaml + default n + help + Toggle to control displaying markers when running in check mode. + https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html#parameter-check_mode_markers + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_DISPLAY_FAILED_STDERR + bool "display_failed_stderr" + output yaml + default n + help + Toggle to control whether failed and unreachable tasks are displayed to STDERR (vs. STDOUT). + https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html#parameter-display_failed_stderr + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_DISPLAY_OK_HOSTS + bool "display_ok_hosts" + output yaml + default y + help + Toggle to control displaying ‘ok’ task/host results in a task. + https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html#parameter-display_ok_hosts + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_DISPLAY_SKIPPED_HOSTS + bool "display_skipped_hosts" + output yaml + default n + help + Toggle to control displaying skipped task/host results in a task. + https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html#parameter-display_skipped_hosts + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_SHOW_CUSTOM_STATS + bool "show_custom_stats" + output yaml + default n + help + This adds the custom stats set via the set_stats plugin to the play recap + https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html#parameter-show_custom_stats + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_SHOW_PER_HOST_START + bool "show_per_host_start" + output yaml + default n + help + This adds output that shows when a task is started to execute for each host + https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html#parameter-show_per_host_start + +config KDEVOPS_ANSIBLE_CONFIG_CALLBACK_PLUGIN_SHOW_TASK_PATH_ON_FAILURE + bool "show_task_path_on_failure" + output yaml + default n + help + When a task fails, display the path to the file containing the failed task and + the line number. This information is displayed automatically for every task when + running with -vv or greater verbosity. + https://docs.ansible.com/ansible/latest/collections/community/general/dense_callback.html#parameter-show_task_path_on_failure +endmenu + +config KDEVOPS_ANSIBLE_CONFIG_DEPRECATION_WARNINGS + bool "deprecation_warnings" + output yaml + default y + help + Toggle to control the showing of deprecation warnings + https://docs.ansible.com/ansible/latest/reference_appendices/config.html#deprecation-warnings + +if DISTRO_OPENSUSE + +config KDEVOPS_ANSIBLE_CONFIG_RECONNECTION_RETRIES + string "reconnection_retries" + output yaml + default 2000 + help + Number of attempts to connect. + Ansible retries connections only if it gets an SSH error with a return code of 255. + Any errors with return codes other than 255 indicate an issue with program execution. + https://docs.ansible.com/ansible/latest/collections/ansible/builtin/ssh_connection.html#parameter-reconnection_retries + +endif # DISTRO_OPENSUSE diff --git a/kconfigs/Kconfig.kdevops b/kconfigs/Kconfig.kdevops index c613ff20c193e717413d983af99bb97069988044..35e9758d789255721c522636ada49f84710e042f 100644 --- a/kconfigs/Kconfig.kdevops +++ b/kconfigs/Kconfig.kdevops @@ -195,3 +195,7 @@ endmenu menu "Kernel continous integration configuration" source "kconfigs/Kconfig.kernel-ci" endmenu + +menu "Ansible Configuration" +source "kconfigs/Kconfig.ansible_cfg" +endmenu diff --git a/playbooks/ansible_cfg.yml b/playbooks/ansible_cfg.yml new file mode 100644 index 0000000000000000000000000000000000000000..a81fd6e936bfc83967fab27f09f74e7b85337ed5 --- /dev/null +++ b/playbooks/ansible_cfg.yml @@ -0,0 +1,4 @@ +--- +- hosts: localhost + roles: + - role: ansible_cfg diff --git a/playbooks/roles/ansible_cfg/defaults/main.yml b/playbooks/roles/ansible_cfg/defaults/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..5d766a78760cede43b9e4df88e280b21e3eb8ca0 --- /dev/null +++ b/playbooks/roles/ansible_cfg/defaults/main.yml @@ -0,0 +1,9 @@ +--- +kdevops_ansible_config_callback_plugin_string: debug +kdevops_ansible_config_callback_plugin_check_mode_markers: False +kdevops_ansible_config_callback_plugin_display_failed_stderr: False +kdevops_ansible_config_callback_plugin_display_ok_hosts: True +kdevops_ansible_config_callback_plugin_display_skipped_hosts: True +kdevops_ansible_config_callback_plugin_show_custom_stats: False +kdevops_ansible_config_callback_plugin_show_per_host_start: False +kdevops_ansible_config_callback_plugin_show_task_path_on_failure: False diff --git a/playbooks/roles/ansible_cfg/tasks/main.yml b/playbooks/roles/ansible_cfg/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..7e7fee78cb4dff1030122c875388b3291c1f3f60 --- /dev/null +++ b/playbooks/roles/ansible_cfg/tasks/main.yml @@ -0,0 +1,17 @@ +--- +- name: Import optional extra_args file + ansible.builtin.include_vars: + file: "{{ item }}" + with_first_found: + - files: + - "../extra_vars.yml" + - "../extra_vars.yaml" + - "../extra_vars.json" + skip: true + failed_when: false + tags: vars + +- name: Generate kdevops ansible.cfg + template: + src: "ansible.cfg.j2" + dest: "{{ topdir_path }}/ansible.cfg" diff --git a/playbooks/roles/ansible_cfg/templates/ansible.cfg.j2 b/playbooks/roles/ansible_cfg/templates/ansible.cfg.j2 new file mode 100644 index 0000000000000000000000000000000000000000..7e35d3b853e23cc5536f5db912dfac07acd350d2 --- /dev/null +++ b/playbooks/roles/ansible_cfg/templates/ansible.cfg.j2 @@ -0,0 +1,14 @@ +[defaults] +deprecation_warnings = {{ kdevops_ansible_config_deprecation_warnings }} +stdout_callback = {{ kdevops_ansible_config_callback_plugin_string }} +check_mode_markers = {{ kdevops_ansible_config_callback_plugin_check_mode_markers }} +display_failed_stderr = {{ kdevops_ansible_config_callback_plugin_display_failed_stderr }} +display_ok_hosts = {{ kdevops_ansible_config_callback_plugin_display_ok_hosts }} +display_skipped_hosts = {{ kdevops_ansible_config_callback_plugin_display_skipped_hosts }} +show_custom_stats = {{ kdevops_ansible_config_callback_plugin_show_custom_stats }} +show_per_host_start = {{ kdevops_ansible_config_callback_plugin_show_per_host_start }} +show_task_path_on_failure = {{ kdevops_ansible_config_callback_plugin_show_task_path_on_failure }} +{% if ansible_facts['distribution'] == 'openSUSE' %} +[connection] +retries = {{ kdevops_ansible_config_reconnection_retries }} +{% endif %}