From d34731b81c14917873f9edc94c0fad735cba061b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kone=C4=8Dn=C3=BD?= Date: Mon, 16 Aug 2021 18:24:53 +0200 Subject: [PATCH] Review ansible SOP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michal Konečný --- .../assets/images/ansible-repositories.png | Bin 0 -> 46450 bytes modules/sysadmin_guide/nav.adoc | 2 +- modules/sysadmin_guide/pages/ansible.adoc | 67 +++++++++--------- 3 files changed, 33 insertions(+), 36 deletions(-) create mode 100644 modules/sysadmin_guide/assets/images/ansible-repositories.png diff --git a/modules/sysadmin_guide/assets/images/ansible-repositories.png b/modules/sysadmin_guide/assets/images/ansible-repositories.png new file mode 100644 index 0000000000000000000000000000000000000000..1754f29a2ae1badb7d7681efdce54f202d797f58 GIT binary patch literal 46450 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 a#MLBfcSK5zDTs)Oh}2beREiJ}gZ~df+A0YE literal 0 HcmV?d00001 diff --git a/modules/sysadmin_guide/nav.adoc b/modules/sysadmin_guide/nav.adoc index 9b9287b..29000a7 100644 --- a/modules/sysadmin_guide/nav.adoc +++ b/modules/sysadmin_guide/nav.adoc @@ -3,7 +3,7 @@ ** xref:2-factor.adoc[Two factor auth] ** xref:accountdeletion.adoc[Account Deletion SOP] ** xref:anitya.adoc[Anitya Infrastructure SOP] -** xref:ansible.adoc[ansible - SOP in review ] +** xref:ansible.adoc[ansible - SOP] ** xref:apps-fp-o.adoc[apps-fp-o - SOP in review ] ** xref:archive-old-fedora.adoc[archive-old-fedora - SOP in review ] ** xref:arm.adoc[arm - SOP in review ] diff --git a/modules/sysadmin_guide/pages/ansible.adoc b/modules/sysadmin_guide/pages/ansible.adoc index 784508f..7b9a719 100644 --- a/modules/sysadmin_guide/pages/ansible.adoc +++ b/modules/sysadmin_guide/pages/ansible.adoc @@ -28,83 +28,85 @@ some other groups to run playbooks against specific hosts. There are 2 git repositories associated with Ansible: * The Fedora Infrastructure Ansible repository and replicas. -+ + [CAUTION] -.Caution ==== This is a public repository. Never commit private data to this repo. ==== -+ + image:ansible-repositories.png[image] -+ + This repository exists as several copies or replicas: + ** The "upstream" repository on Pagure. -+ + https://pagure.io/fedora-infra/ansible -+ + This repository is the public facing place where people can contribute (e.g. pull requests) as well as the authoritative source. Members of the `sysadmin` FAS group or the `fedora-infra` Pagure group have commit access to this repository. -+ + To contribute changes, fork the repository on Pagure and submit a Pull Request. Someone from the aforementioned groups can then review and merge them. -+ + It is recommended that you configure git to use `pull --rebase` by default by running `git config --bool pull.rebase true` in your ansible clone directory. This configuration prevents unneeded merges which can occur if someone else pushes changes to the remote repository while you are working on your own local changes. -** Two bare mirrors on [.title-ref]#batcave01#, `/srv/git/ansible.git` + +** Two bare mirrors on _batcave01_, `/srv/git/ansible.git` and `/srv/git/mirrors/ansible.git` -+ + [CAUTION] -.Caution ==== These are public repositories. Never commit private data to these repositories. Don't commit or push to these repos directly, unless Pagure is unavailable. ==== -+ -The `mirror_pagure_ansible` service on [.title-ref]#batcave01# receives + +The `mirror_pagure_ansible` service on _batcave01_ receives bus messages about changes in the repository on Pagure, fetches these into `/srv/git/mirrors/ansible.git` and pushes from there to `/srv/git/ansible.git`. When this happens, various actions are triggered via git hooks: + *** The working copy at `/srv/web/infra/ansible` is updated. -*** A mail about the changes is sent to [.title-ref]#sysadmin-members#. + +*** A mail about the changes is sent to _sysadmin-members_. + *** The changes are announced on the message bus, which in turn triggers announcements on IRC. -+ -You can check out the repo locally on [.title-ref]#batcave01# with: -+ + +You can check out the repo locally on _batcave01_ with: + .... git clone /srv/git/ansible.git .... -+ + If the Ansible repository on Pagure is unavailable, members of the -[.title-ref]#sysadmin# group may commit directly, provided this +_sysadmin_ group may commit directly, provided this procedure is followed: [arabic] . The synchronization service is stopped and disabled: -+ + .... sudo systemctl disable --now mirror_pagure_ansible.service .... -. Changes are applied to the repository on [.title-ref]#batcave01#. +. Changes are applied to the repository on _batcave01_. . After Pagure is available again, the changes are pushed to the repository there. . The synchronization service is enabled and started: -+ + .... sudo systemctl enable --now mirror_pagure_ansible.service .... -** `/srv/web/infra/ansible` on [.title-ref]#batcave01#, the working copy +** `/srv/web/infra/ansible` on _batcave01_, the working copy from which playbooks are run. -+ + [CAUTION] -.Caution ==== This is a public repository. Never commit private data to this repo. Don't commit or push to this repo directly, unless Pagure is @@ -113,26 +115,21 @@ unavailable. + You can access it also via a cgit web interface at: https://pagure.io/fedora-infra/ansible/ -+ -[verse] --- --- -* `/srv/git/ansible-private` on [.title-ref]#batcave01#. -+ +* `/srv/git/ansible-private` on _batcave01_. + [CAUTION] -.Caution ==== This is a private repository for passwords and other sensitive data. It is not available in cgit, nor should it be cloned or copied remotely. ==== -+ + This repository is only accessible to members of 'sysadmin-main'. === Cron job/scheduled runs With use of run_ansible-playbook_cron.py that is run daily via cron we -walk through playbooks and run them with [.title-ref]#--check --diff# +walk through playbooks and run them with _--check --diff_ params to perform a dry-run. This way we make sure all the playbooks are idempotent and there is no @@ -149,7 +146,7 @@ when and what commands and playbooks were run. === role based access control for playbooks -There's a wrapper script on batcave01 called 'rbac-playbook' that allows +There's a wrapper script on _batcave01_ called 'rbac-playbook' that allows non sysadmin-main members to run specific playbooks against specific groups of hosts. This is part of the ansible_utils package. The upstream for ansible_utils is: https://bitbucket.org/tflink/ansible_utils