Установка SimpleOne 1.21.3 на Debian 12.5

Данное руководство представлено исключительно в ознакомительных целях как лабораторная работа и противоречит эксплуатационной документации SimpleOne.

Скачиваем и устанавливаем пакеты Docker:

wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/docker-ce-cli_24.0.6-1~debian.12~bookworm_amd64.deb
wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/docker-ce-rootless-extras_24.0.6-1~debian.12~bookworm_amd64.deb
wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/docker-ce_24.0.6-1~debian.12~bookworm_amd64.deb
wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/containerd.io_1.6.24-1_amd64.deb
wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/docker-compose-plugin_2.18.1-1~debian.12~bookworm_amd64.deb
dpkg -i *.deb

Запускаем Docker:

systemctl enable docker
systemctl start docker

Добавить alias для старой версии docker-compose. Для этого в /usr/local/bin/docker-compose нужно разместить скрипт по следующим содержанием:

touch /usr/local/bin/docker-compose
nano /usr/local/bin/docker-compose

#!/usr/bin/env bash 
echo -e "\033[1;35m[WARNING] This is aliased command \"docker compose\"\033[0m"
docker compose $@

Делаем его исполняемым:

chmod +x /usr/local/bin/docker-compose

Устанавливаем необходимое окружение:

apt install -y sshpass
apt install -y pip3
apt install -y jq
pip3 install cryptography  --break-system-packages
pip3 install ansible==4.0.0 --break-system-packages
pip3 install passlib --break-system-packages
ansible-galaxy collection install community.crypto   --force

Далее работаем с дистрибутивом:

tar -xvf release-*.tar.gz
cd release-1-21-3-2/

Правим конфигурационные файлы дистрибутива:

nano inventory/single/inventory.yml
nano inventory/single/group_vars/all/vars.yml

Добавляем нашу ОС в system.yml :

nano vars/all/system.yml
os_valid_distributions:
  - Debian

os_minimal_versions:
  Debian: 12

Правим:

nano roles/single/tasks/asserts/assert_postgres.yml
- name: get postgres container
  shell: |
    set -euo pipefail
    docker ps -a --format='{%raw%}{{json .}}{%endraw%}' --filter label=app=postgres
  args:
    executable: /bin/bash

Это нужно для решения ошибки:

Далее запускаем установку:

ansible-playbook complex-offline.yml -i inventory/single -vvv -c local

1 лайк

Изменения что я внес для distributed
Заменили в файлах
/roles/distributed/etcd/tasks/etcd.yml
блок run docker-compose на:

  • name: run docker-compose
    command: /usr/local/bin/docker-compose up -d
    args:
    chdir: “{{ docker_compose_path }}”
    register: up_result
    changed_when: ‘“done” in up_result.stderr’
    throttle: 1
    /roles/distributed/kafka/server/tasks/kafka.yml на:

  • name: run docker-compose
    command: /usr/local/bin/docker-compose up -d --remove-orphans
    args:
    chdir: “{{ docker_compose_path }}”
    executable: /bin/bash
    register: up_result
    until: up_result.rc == 0
    retries: 10
    delay: 5
    changed_when: ‘“done” in up_result.stderr’
    throttle: “{{ throttle_size | default(0) }}”

/roles/distributed/kafka/ui/tasks/main.yml на

  • name: run docker-compose
    command: /usr/local/bin/docker-compose up -d --remove-orphans
    args:
    chdir: “{{ docker_compose_path }}”
    register: up_result
    changed_when: ‘“done” in up_result.stderr’
    throttle: 1

/roles/distributed/kafka/connector/tasks/kafka_connect.yml на

  • name: run docker-compose
    command: /usr/local/bin/docker-compose up -d --remove-orphans
    args:
    chdir: “{{ docker_compose_path }}”
    register: up_result
    changed_when: ‘“done” in up_result.stderr’
    throttle: 1
    в файле /roles/distributed/rabbitmq/cluster/tasks/rabbit-cluster.yml закомментировали строку для блока set ha policy

#set -euo pipefail

1 лайк

Для single:
В файле:
/vars/all/system.yml добавил строки с Debian 12 версии

в файле:
/roles/single/tasks/asserts/assert_postgres.yml
в get postgres container внес блок

args:
executable: /bin/bash
в остальных тасках он есть, а тут был пропущен
Тест прошел успешно
так же нужно добавить этот блок для версии отказоустойчивой:
/roles/distributed/postgres/tasks/assert_postgres.yml

в файле:
/roles/distributed/backend/templates/docker-compose.yml.j2
внес в блок list-exporter изменения

deploy:
restart_policy:
condition: always
теперь контейнер перезапускается после выключения сам, стояло condition: on-failure