Operations grimoire/Odderon: Difference between revisions
From Nasqueron Agora
| Line 17: | Line 17: | ||
## Deploy with <code>salt eglide state.apply roles/shellserver/odderon/code</code>  | ## Deploy with <code>salt eglide state.apply roles/shellserver/odderon/code</code>  | ||
## When happy, you can restart the bot through <code>%restart</code> on IRC or through <code>sudo service restart odderon</code>  | ## When happy, you can restart the bot through <code>%restart</code> on IRC or through <code>sudo service restart odderon</code>  | ||
Ensure /opt/odderon/LOCKED doesn't exist during the upgrade process: it blocks the states to run  | |||
== Allow user access top code ==  | == Allow user access top code ==  | ||
Revision as of 17:37, 29 May 2023
Odderon is hosted on Eglide, runs as odderon.
Deployment
Deployment is managed by SaltStack, with code update from Git.
- Commit code generic change to master, code specific to Odderon to production
 - If needed, rebase production against master
 - To update the repository against production branch: 
salt eglide state.apply roles/shellserver/odderon/ 
The darkbot is in written in C, so it must be compiled.
Upgrade code
- Forward the production branch against the desired commit.
- For example to rebase against the 
masterbranch:git fetch && git checkout production && git rebase origin/master - Push to DevCentral: 
git push origin production 
 - For example to rebase against the 
 - Deploy and restart the bot:
- Deploy with 
salt eglide state.apply roles/shellserver/odderon/code - When happy, you can restart the bot through 
%restarton IRC or throughsudo service restart odderon 
 - Deploy with 
 
Ensure /opt/odderon/LOCKED doesn't exist during the upgrade process: it blocks the states to run
Allow user access top code
Users in nasqueron-irc group can sudo -u odderon.
This group is managed at pillar/users/shellgroups.sls.
Block deployment
Code update doesn't occur if a LOCKED file exists.
So to block update from Git: touch /opt/odderon/LOCKED
To resume update: rm /opt/odderon/LOCKED
Reference
A walkthrough to prepare this SaltStack role has been documented: