From 99c0910fe78291ebd5700701d13360b0eca5ed6d Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Wed, 13 Jan 2021 18:16:10 +0100 Subject: [PATCH] devops-tools/documentation#7 Add new readme from ansiblemaster project --- docs/ansible/installation.md | 157 +++++++++++++++++++++++++++++++++++ docs/new-features.md | 2 +- docs/versions.txt | 3 +- mkdocs.yml | 1 + 4 files changed, 161 insertions(+), 2 deletions(-) create mode 100644 docs/ansible/installation.md diff --git a/docs/ansible/installation.md b/docs/ansible/installation.md new file mode 100644 index 0000000..c6e7e8a --- /dev/null +++ b/docs/ansible/installation.md @@ -0,0 +1,157 @@ +--- +title: Install Ansible Docker Framework +repo: https://gitlab.lakedrops.com/ansible/playbooks/ansiblemaster +issues: https://gitlab.lakedrops.com/ansible/playbooks/ansiblemaster/-/issues +tags: +- ansible +--- +# Installation and configuration + +## Preparation + +You can define certain variables which will be made available to all inventory containers automatically. + +Global variables go into `/etc/ansible.yml` and may contain information about GitLab and Mattermost but also many other things you will need globally, e.g.: + +```yaml +gitlab_issue: + url: 'https://gitlab.lakedrops.com' + token: '[PRIVATETOKEN]' + +inventories: + - 'name1' + - 'name2' + +mattermost_hooks: + name1: 'https://mattermost.lakedrops.com/hooks/[TOKEN1]' + name2: 'https://mattermost.lakedrops.com/hooks/[TOKEN2]' +``` + +In this example, `name1` and `name2` are examples/placeholders for real inventory names that you're working with. You can find the list of available inventories to you by going to https://gitlab.lakedrops.com/ansible-inventories and grab the name(s) for each inventory. The `[TOKENs]` for Mattermost are available from each of the inventories project pages. + +The `[PRIVATETOKEN]` can be generated at https://gitlab.lakedrops.com/profile/personal_access_tokens + +Host specific variables, that only should be used on specific Ansible masters, go into `/etc/ansible/facts.d/ansiblemaster.fact`. Those require JSON specification, e.g.: + +```json +{"host_is_scheduler": true} +``` + +If you don't know what to put into this, just ignore that part. + +## Install Docker + +If Docker is not yet installed on your host, please refer to https://docs.docker.com/install + +## Install Ansible Docker Framework + +```bash +docker pull registry.lakedrops.com/ansible-playbooks/ansiblemaster:latest + +# On Ubuntu and other Linux systems: +docker run -it --rm \ + --volume ~/.a:/root/.a \ + --volume /etc/ansible.yml:/etc/ansible.yml \ + --volume /etc/ansible/facts.d:/etc/ansible/facts.d \ + --volume /usr/local/bin:/usr/local/bin \ + registry.lakedrops.com/ansible-playbooks/ansiblemaster:latest + +# On MacOS: +docker run -it --rm \ + --volume ~/.a:/root/.a \ + --volume /private/etc/ansible.yml:/etc/ansible.yml \ + --volume /private/etc/ansible/facts.d:/etc/ansible/facts.d \ + --volume ~/bin:/usr/local/bin \ + registry.lakedrops.com/ansible-playbooks/ansiblemaster:latest +``` + +This process is setting up your localhost as the Ansible master based on Docker and it creates 2 scripts (`dans` and `dans-all`) in your `/usr/local/bin` (or `~/bin` on MacOS) directory. Those 2 scripts are used to operate Ansible tasks on all your different inventories you have access to. + +Notes on MacOS: Probably the `~/bin` directory is not included in your search path for executables. If so, please make sure to add it first. + +# Usage + +## Login to the LakeDrops Docker repository + +The Ansible Docker images for the inventories are private and can only be downloaded and used by authenticated users. + +``` +docker login registry.lakedrops.com +``` + +This asks for your username and password for that registry which is the same as your credentials for https://gitlab.lakedrops.com - you only need to login once, your authentication is persistent on your localhost and normally you shouldn't have to re-login in the future, unless Docker asks you to do so again in case the authentication expired. + +## Download and later update your Docker container + +For each inventory you will get an individual Docker container which is running in the background and those containers bring everything with them, you don't have to configure anything. To initially download and later update any of your inventory containers, call + +``` +dans INVENTORYNAME update +``` + +This will download the Docker image for that inventory and start a Docker container for it which you can then start using for all your Ansible operations. If you operate with mutliple inventories, you can also update them all at once with the second script + +``` +dans-all update +``` + +This works for all commands also explained below, `dans INVENTRORYNAME` works for the fiven inventory only where `dans-all` works for all available inventories at once. + +## Running Ansible commands + +To get a list of all prepard Ansible scripts, call + +``` +dans INVENTORYNAME +``` + +without any further arguments. This will give you a long list of scripts and to learn more about any of them just call + +``` +dans INVENTORYNAME SCRIPT --help +``` + +To run a playbook which isn't covered by a script (yet), you can use the script called `playbook` which even allows you to run a custom playbook that's only available for a specific inventory, e.g. + +``` +dans INVENTORYNAME playbook deploy --custom=yes +``` + +In general terms, all the commands that have been documented as `apb PLAYBOOK ...args...` can be called in the Docker context as `dans INVENTORYNAME playbook PLAYBOOK ...args...` + +## Shell into Ansible inventory containers + +Sometimes, e.g. for testing or debugging purposes, you may want to get into one of the containers which is easy with + +``` +dans INVENTORYNAME exec +``` + +# Trouble shooting + +This suite has been tested on Ubuntu and MacOS but of course, things can still go wrong. IN this section we are collecting recommendations on what you can do in case, things are not working. + +## Ansible is very slow + +By default, Ansible send log messages to your host on port 24224 where a FluentD service could be listening which stores those logs for later investigation. If no service is listening, this is usually ignored but we've seen some hosts where this slows down Ansible startup time significantly. For those cases, you should explicitly turn off FluentD logging with these steps: + +Edit or create the file `~/.a/environment` and add a line `FLUENTD_LOGGING=no`. Then force updating your containers by calling `dans INVENTORYNAME forceupdate`. + +## Ansible reports errors UNREACHABLE + +This can have a lot of reasons. Please check the following options: + +- Are your credentials (remote username and password) correct? You know, typos can happen. So please check the files `~/.a/environment` for the username and `~/.a/variables.yml` for the password. If one of them contained a mistake, please correct that and update your container with `dans INVENTORYNAME update` +- Is your private key contained in `~/.ssh/id_rsa` the correct one for the hosts in your inventory? If not, please correct that and update the containe. + +If none of that helps, please run `dans INVENTORYNAME debug` and copy the very verbose output into an issue here in this project, so that we can analyze the problem further. + +## SSH ControlMaster not working in your environment + +In some environments, the SSH ControlMaster is not working properly so that we included the option to disable it. To do that, edit the file `/etc/ansible.yml` on your host and add the following definition: + +```yaml +custom_disable_controlmaster: true +``` + +Save the file, [Update your Ansible Docker Framework](#install-ansible-docker-framework) and then update your container with `dans INVENTORYNAME update` which should from then on always ignore the ControlMaster. diff --git a/docs/new-features.md b/docs/new-features.md index ab7572f..69230dd 100644 --- a/docs/new-features.md +++ b/docs/new-features.md @@ -1,6 +1,6 @@ # New in version 2021.1.12: -------- -- [Ansible Role Fluentd Client](ansible/roles/fluentd-client/index.html) +- [Ansible](ansible/installation.html) > __ diff --git a/docs/versions.txt b/docs/versions.txt index 3dc1af0..5598cba 100644 --- a/docs/versions.txt +++ b/docs/versions.txt @@ -5,4 +5,5 @@ {"version":"2021.1.12","pages":["index.md", "how-to-write-docs.md", "new-features.md", "ansible/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/serverdensity/index.md", "ansible/roles/apache/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mysql/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/oracle/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/php/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/user-management/index.md", "ansible/roles/vpn/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/maven-build/index.md", "docker/node/index.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]} {"version":"2021.1.12","pages":["index.md", "how-to-write-docs.md", "new-features.md", "ansible/index.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aprproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/flientd-client/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/maven-build/index.md", "docker/node/index.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]} {"version":"2021.1.12","pages":["index.md", "how-to-write-docs.md", "new-features.md", "ansible/index.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aptproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/flientd-client/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/maven-build/index.md", "docker/node/index.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]} -{"version":"2021.1.12","pages":["index.md", "how-to-write-docs.md", "new-features.md", "ansible/index.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aptproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/fluentd-client/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/maven-build/index.md", "docker/node/index.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]} \ No newline at end of file +{"version":"2021.1.12","pages":["index.md", "how-to-write-docs.md", "new-features.md", "ansible/index.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aptproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/fluentd-client/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/maven-build/index.md", "docker/node/index.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]} +{"version":"2021.1.12","pages":["index.md", "how-to-write-docs.md", "new-features.md", "ansible/index.md", "ansible/installation.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aptproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/fluentd-client/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/maven-build/index.md", "docker/node/index.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index f24c496..edab054 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -56,6 +56,7 @@ nav: - Drupal 9: composer/project/d9/index.md - Ansible: - Home: ansible/index.md + - Installation: ansible/installation.md - Wiki: - Home: ansible/wiki/index.md - Attacks: ansible/wiki/attacks.md -- GitLab