Work in progress
| Table of Contents |
|---|
Overview
Usiamo un meccanismo di CI/CD per cui:
- Esiste un git repo unico sia per la parte controller che per la parte compute con 2 branch:
- Il branch 'main' viene usato nella cloud di produzione (environment 'production' di puppet)
- Il branch 'testing' viene usato nella cloud di test (environment 'testing' di puppet
- Il codice puppet che viene usato sta in cld-config. ma non si deve MAI modificare i sorgenti puppet direttamente su cld-config
- Modifiche al codice vanno implementate:
- Per cloud di test committando (lavorando sulla propria postazione di lavoro) committando sul branch testing. Queste vengono apoi utomaticamente "scaricate" in cld-config
- Per cloud di produzione (quindi branch main) solo come pull request lavorando sulla propria postazione di lavoro. Una volta che sono approvate (e quindi mergiate nel branch main) queste vengono automaticamente "scaricate" in cld-config
- Prima si modifica sul branch testing e poi (dopo una fase di testing) la modifica deve finire anche in main
- Modifiche solo in main non devono essere fatte
Setup iniziale dell'ambiente sulla propria postazione di lavoro
Installazione git-crypt
Va installato git-crypt
Per i sistemi RHEL compliant esiste in EPEL (quindi 'yum install git-crypt')
...
| Code Block |
|---|
git clone https://github.com/AGWA/git-crypt.git make make install PREFIX=/usr/local |
Download del repo git
| Code Block |
|---|
mkdir ~/Workdir cd ~/Workdir git clone https://github.com/CloudPadovana/puppet_epoxy.git |
Scaricare la chiave per il crypting dei file params.pp
Scarico da cld-config il file /var/puppet/KeyRepoEpoxyTesting e copiarlo ad esempio in ~/Workdir
Modifica del codice puppet per la cloud di test
Mi accerto che la copia locale del mio repo (branch testing) sia aggiornata:
...
| Code Block |
|---|
# fai modifiche git add <files modificati> git commit -m "Messaggio" <files modificati> git push |
Modifica del codice puppet per la cloud di produzione
Se devo riportare le modifiche da testing a main (quindi per metterle in produzione):
...
Una volta che la PR sara' approvata, le modifiche finiranno effettivamente in main
Sincronizzazione tra main e testing
In generale quello che e' su testing prima o poi deve finire anche su main (dopo la fase di testing delle modifiche fatte sulla cloud di test).
...