/ds-playbooks

The ansible playbooks used to deploy the Data Store.

Primary LanguageC++OtherNOASSERTION

CyVerse DS Playbooks

This is a collection of playbooks for maintaining CyVerse's Data Store.

Prerequisites

Only Ubuntu 22.04 is supported at this time.

The Docker package repository needs to be configured on development machines and Ansible control nodes. Do the following as the root user.

prompt> apt update
prompt> apt install ca-certificates curl gnupg lsb-release
prompt> mkdir --parents /etc/apt/keyrings
prompt> curl --fail --location --silent --show-error https://download.docker.com/linux/ubuntu/gpg \
           | gpg --dearmor --output /etc/apt/keyrings/docker.gpg
prompt> echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
              https://download.docker.com/linux/ubuntu \
              $(lsb_release -cs) stable" \
           | tee /etc/apt/sources.list.d/docker.list
prompt> apt update

As the root user, the following system packages need to be installed on development machines and Ansible control nodes.

  • dmidecode
  • docker-ce
  • docker-compose-plugin
  • jq
  • python3
  • python3-pip
  • rpm

The docker service needs to be started, and the developer needs to be a member of the docker group, and the docker service needs to be. Do the following as the root user where DEVELOPER is the username of the developer.

prompt> systemctl enable docker
prompt> systemctl start docker
prompt> usermod --append --groups docker DEVELOPER

The file requirements-python.txt python packages need to be installed on the development machines and Ansible control nodes using pip.

  • ansible-core!=2.17.0
  • ansible-lint
  • dnspython
  • docker
  • molecule
  • molecule-plugins[podman]
  • netaddr
  • pika>1.2
  • python-irodsclient<2
  • wheel

All VMs (including the Ansible Control Node, if that is a VM) shall install rng-tools using the playbook in admin directory called install_rng_tools.yml. This ensures that ansible tasks have efficient entropy in generating random numbers, preventing unexpected pauses in deployment.

Finally, the required ansible collections and roles need to be installed. This can be done by running the init-ansible script.

XXX - crun on Ubuntu 22.04: Due to a bug in the version of crun that ships with Ubuntu 22.04, podman can't start systemd containers. See https://noobient.com/2023/11/15/fixing-ubuntu-containers-failing-to-start-with-systemd/ for the work around.