Questo progetto configura un ambiente di test con due macchine virtuali CentOS 8 e comunicazione ssh utilizzando Vagrant, ciascuna con versioni diverse di Subversion (SVN) per testare la compatibilità e le funzionalità tra versioni.
- Sistema Operativo: CentOS 8
- Indirizzo IP: 192.168.168.10
- Versione SVN: 1.6.0 (compilata da sorgente)
- Porta SSH: 2216 (port forwarding)
- Memoria: 1536 MB
- CPU: 1 core
- Sistema Operativo: CentOS 8
- Indirizzo IP: 192.168.168.11
- Versione SVN: 1.10.x (installata da repository)
- Porta SSH: 2217 (port forwarding)
- Memoria: 1536 MB
- CPU: 1 core
.
├── Vagrantfile # Configurazione principale di Vagrant
├── scripts/
│ ├── setup_svn16.sh # Script di provisioning per SVN 1.6
│ ├── setup_svn110.sh # Script di provisioning per SVN 1.10
│ └── setup_ssh.sh # Script per configurazione SSH
└── config_key.sh # Script per configurazione chiavi SSH
- Vagrant installato sul sistema host
- VirtualBox come provider per le VM
- Connessione internet per il download dei pacchetti
# Crea e avvia entrambe le VM
vagrant up
# Oppure avvia le VM singolarmente
vagrant up svn16
vagrant up svn110Dopo aver creato le VM, è necessario configurare le chiavi SSH per permettere la comunicazione tra le macchine:
# Accedi alla prima VM
vagrant ssh svn16
# Esegui lo script di configurazione delle chiavi
sudo bash /vagrant/config_key.shRipeti l'operazione per la seconda VM:
# Accedi alla seconda VM
vagrant ssh svn110
# Esegui lo script di configurazione delle chiavi
sudo bash /vagrant/config_key.shPer completare la configurazione SSH:
-
Su svn16-server:
vagrant ssh svn16 cat ~/.ssh/id_rsa.pub # Copia l'output
-
Su svn110-server:
vagrant ssh svn110 echo 'CHIAVE_PUBBLICA_DI_SVN16' >> ~/.ssh/authorized_keys cat ~/.ssh/id_rsa.pub # Copia l'output
-
Torna su svn16-server:
echo 'CHIAVE_PUBBLICA_DI_SVN110' >> ~/.ssh/authorized_keys
- SVN 1.6.0 compilato da sorgente e installato in
/opt/svn-1.6/ - PATH configurato per utilizzare la versione compilata
- Repository di test creato in
/svn/repos/repo16 - Risoluzione dei problemi di repository CentOS 8 EOL
- SVN 1.10.x installato tramite yum/dnf
- Repository di test creato in
/svn/repos/repo110 - Configurazione ottimizzata per CentOS 8 EOL
- SSH: Configurato e abilitato su entrambe le VM
- Firewall: Configurato per permettere connessioni SSH
- Hosts file: Configurato per la risoluzione dei nomi tra VM
- Locale: Impostato su en_US.UTF-8 per evitare warning
- DNS: Configurato per utilizzare il resolver dell'host
# Accesso diretto tramite Vagrant
vagrant ssh svn16
vagrant ssh svn110
# Accesso tramite SSH (dall'host)
ssh -p 2216 vagrant@localhost # svn16-server
ssh -p 2217 vagrant@localhost # svn110-server
# Accesso tra VM (dopo configurazione chiavi)
ssh vagrant@192.168.168.11 # Da svn16 a svn110
ssh vagrant@192.168.168.10 # Da svn110 a svn16# Su svn16-server
/opt/svn-1.6/bin/svn --version
# Su svn110-server
svn --versionSe si verificano problemi di connessione durante il provisioning:
- Verificare la connessione internet dell'host
- Controllare che VirtualBox abbia configurato correttamente il NAT
- I script includono configurazioni per CentOS 8 EOL che reindirizzano a vault.centos.org
Se la compilazione di SVN 1.6 fallisce:
- Controllare i log di errore nel terminale
- Verificare che tutti i pacchetti di sviluppo siano installati
- Assicurarsi che apr-devel e apr-util-devel siano disponibili
# Stato delle VM
vagrant status
# Riavvio delle VM
vagrant reload
# Riesecuzione del provisioning
vagrant provision
# Spegnimento delle VM
vagrant halt
# Distruzione delle VM
vagrant destroy- CentOS 8 EOL: Gli script gestiscono automaticamente la transizione a vault.centos.org
- SVN 1.6: Versione legacy compilata da sorgente per compatibilità
- Networking: Configurazione di rete privata per comunicazione inter-VM
- Port Forwarding: Configurato per accesso SSH diretto dall'host