Get Started [deprecated]#
Prerequisites#
Debian-based Linux (Debian or its derivatives, WSL, …)
python3 (>3.8)
python3-venv
python3-pip
python3-dev
git
direnv
make
docker
bash or zsh
Already on Debian?
sudo apt-get install python3 python3-dev python3-venv python3-pip git direnv make bash lsb-release
and follow the official guide to install Docker.
Configure direnv
Mind about hooking direnv to your prefered shell.
Setup workspace#
Clone the galaxie-forge project and place you terminal into the repository root directory:
git clone https://codeberg.org/RTNP/galaxie-forge.git
cd galaxie-forge
Install requirements:
echo
echo "--- Installation des paquets apt nécessaires"
sudo apt update
sudo apt-get install python3 python3-dev python3-venv python3-pip git direnv make bash curl lsb-release unzip
echo "--- Branchement de direnv dans la configuration bash de l'utilisateur"
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
echo "--- Rechargement de la configuration bash de l'utilisateur"
source ~/.bashrc
Allow direnv to load/unload the workspace environment and build your local dependencies:
direnv allow
make prepare
Validate workspace#
Run the following commands:
which ansible
The outputs should give you a path like /absolute/path/to/your/clone/.direnv/...
CONGRATULATIONS
You are ready to work with the project.
Dépendances locales#
make prepare
Résolution locale#
Modifier votre fichier hosts en ajoutant les entrées suivantes :
127.0.0.1 gitea.local.ici127.0.0.1 concourse.local.ici
Installation#
Pour déployer la stack complète, tapez la commande :
make up
Pour arrêter la stack complète.
make down
Cette commande arrête et supprime les containers docker.
Variables#
Le jeu de variables fournit respect le standard documenté d’Ansible. Le format utilisé est le YAML et les noms des variables sont le plus explicite possible.
Les variables sont imposées par un groupe ansible appelé file_generator
Elles sont rassemblées dans le fichier ansible/group_vars/files_generator/main.yml
---
__data_dir: "{{ lookup('env', 'PWD') }}/data"
__root_dir: "{{ lookup('env', 'PWD') }}"
glxdev_root_dir: "{{ __root_dir | realpath }}"
glxdev_data_dir: "{{ __data_dir | realpath }}"
glxdev_gitea_dir: "{{ glxdev_data_dir }}/gitea"
glxdev_postgresql_dir: "{{ glxdev_data_dir }}/postgresql"
glxdev_concourse_dir: "{{ glxdev_data_dir }}/concourse"
glxdev_directories:
- "{{ glxdev_data_dir }}"
- "{{ glxdev_gitea_dir }}"
- "{{ glxdev_postgresql_dir }}"
- "{{ glxdev_concourse_dir }}"
glxdev_gitea_docker_compose_file: "{{ glxdev_root_dir }}/docker-compose-gitea.yml"
glxdev_postgresql_docker_compose_file: "{{ glxdev_root_dir }}/docker-compose-postgresql.yml"
glxdev_concourse_web_compose_file: "{{ glxdev_root_dir }}/docker-compose-concourse.yml"
glxdev_network_name: "glxdev"
glxdev_network_subnet: 172.26.0.0/24
glxdev_network_gateway: 172.26.0.1
# Pour la génération du certificat auto-signé utilisé par la registry
glxdev_domain_name: "local.ici"
glxdev_common_name: "gitea.{{ glxdev_domain_name }}"
glxdev_organization_name: "Galaxie"
glxdev_subject_alt_name:
- "DNS:local.ici"
# Informations du gittea
glxdev_gitea_server_name: "gitea"
glxdev_gitea_image: "gitea/gitea:1.17.3"
glxdev_gitea_container_name: "{{ glxdev_gitea_server_name }}.{{ glxdev_domain_name }}"
glxdev_gitea_docker_network_ipv4_address: "172.26.0.42"
glxdev_gitea_web_port: "3000"
glxdev_gitea_ssh_port: "222"
# Informations du postgresql
glxdev_postgresql_server_name: "postgresql"
glxdev_postgresql_image: "codeberg.org/rtnp/postgresql-multi-databases:latest"
glxdev_postgresql_container_name: "{{ glxdev_postgresql_server_name }}.{{ glxdev_domain_name }}"
glxdev_postgresql_network_ipv4_address: "172.26.0.43"
glxdev_postgresql_port: "5432"
glxdev_postgresql_gitea_db: "gitea"
glxdev_postgresql_gitea_password: "gitea"
glxdev_postgresql_gitea_user: "gitea"
glxdev_postgresql_concourse_user: "concourse"
glxdev_postgresql_concourse_pass: "concourse"
glxdev_postgresql_concourse_db: "concourse"
# Informations de Concourse Web
glxdev_concourse_web_service_name: "concourse-web"
glxdev_concourse_web_container_name: "{{ glxdev_concourse_web_service_name }}.{{ glxdev_domain_name }}"
glxdev_concourse_image: "concourse/concourse"
glxdev_concourse_image_version: "7.9.0"
glxdev_concourse_web_host_port: "4042"
glxdev_concourse_web_network_ipv4_address: "172.26.0.44"
glxdev_concourse_web_directory_generated_keys: "{{ glxdev_concourse_dir }}/keys"
glxdev_concourse_web_external_url: "http://localhost:{{ glxdev_concourse_web_host_port }}"
glxdev_concourse_web_local_user: "test"
glxdev_concourse_web_local_password: "test"
glxdev_concourse_web_session_signing_key: "/concourse-keys/session_signing_key"
glxdev_concourse_web_tsa_host_key: "/concourse-keys/tsa_host_key"
glxdev_concourse_web_worker_key: "/concourse-keys/worker_key"
glxdev_concourse_web_authorized_worker_keys: "/concourse-keys/authorized_worker_keys"
glxdev_concourse_web_runtime: "containerd"
glxdev_concourse_download_cli_version: "7.9.0"
glxdev_concourse_download_cli_url: "https://github.com/concourse/concourse/releases/download/v{{ glxdev_concourse_download_cli_version }}/concourse-{{ glxdev_concourse_download_cli_version }}-linux-amd64.tgz"
# Information de Concourse worker
glxdev_concourse_worker_service_name: "concourse-worker"
glxdev_concourse_worker_container_name: "{{ glxdev_concourse_worker_service_name }}.{{ glxdev_domain_name }}"
glxdev_concourse_worker_local_state_dir: "{{ glxdev_concourse_dir }}/worker_state"
glxdev_concourse_worker_work_dir: "/opt/concourse/worker"
glxdev_concourse_worker_tsa_host: "{{ glxdev_concourse_web_network_ipv4_address }}:2222"
glxdev_concourse_worker_containerd_dns: "9.9.9.9"
glxdev_concourse_worker_network_ipv4_address: "172.26.0.45"
Notes TODO#
install de fly via .envrc
fly login -t local -c http://concourse.local.ici:4042/ -u admin -p admin
compute+storage (debian)
inventory avec ping ansible -b qui marche sur une machine qui a accès à internet
setup glx clans (clan_host+stystem_base+container+vault/pg/gittea/concourse)