Delete page "1-click+service.-"
parent
d8909a8a8c
commit
c9d980d5fe
@ -1,84 +0,0 @@
|
|||||||
# 1-click service
|
|
||||||
|
|
||||||
1. decide project name
|
|
||||||
1. decide target system
|
|
||||||
1. create Gitea project (from Service template)
|
|
||||||
1. jenkinsfile in gitea project - deploy on target system
|
|
||||||
1. create service account on target system. hint: `loginctl enable-linger $USER`
|
|
||||||
1. create/enable/start user service. hint: https://superuser.com/a/1028180/144827, you'll want `WantedBy=default.target`
|
|
||||||
|
|
||||||
```systemd unit
|
|
||||||
[Unit]
|
|
||||||
Description=Transmission BitTorrent Daemon
|
|
||||||
After=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/local/bin/transmission-daemon --config-dir /path/to/config/transmission-daemon -f --log-error
|
|
||||||
ExecReload=/bin/kill -s HUP $MAINPID
|
|
||||||
NoNewPrivileges=true
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
||||||
```
|
|
||||||
|
|
||||||
## create a user with bash
|
|
||||||
|
|
||||||
```bash
|
|
||||||
create_user() {
|
|
||||||
username=$1
|
|
||||||
password=$2
|
|
||||||
|
|
||||||
# Create the user with the specified username
|
|
||||||
sudo useradd -m -s /bin/bash $username
|
|
||||||
|
|
||||||
# Set the user's password
|
|
||||||
echo "$username:$password" | sudo chpasswd
|
|
||||||
|
|
||||||
echo "User '$username' has been created with the password '$password'"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
fyi: you will need sudo. it's creating a new account on the system, of course you do.
|
|
||||||
|
|
||||||
|
|
||||||
## jenkins creds
|
|
||||||
|
|
||||||
```bash
|
|
||||||
CRUMB=$(curl -s 'http://admin:[APITOKEN]@alloces.lan:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
|
|
||||||
echo $CRUMB
|
|
||||||
curl -H $CRUMB -X POST 'http://admin:[APITOKEN]@alloces.lan:8080/job/gitea.arg.rip/job/franz/credentials/store/folder/domain/greyn%20services/createCredentials' \
|
|
||||||
--data-urlencode 'json={
|
|
||||||
"": "0",
|
|
||||||
"credentials": {
|
|
||||||
"scope": "GLOBAL",
|
|
||||||
"id": "identification",
|
|
||||||
"username": "manu",
|
|
||||||
"password": "bar",
|
|
||||||
"description": "linda",
|
|
||||||
"$class": "com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl"
|
|
||||||
}
|
|
||||||
}'
|
|
||||||
```
|
|
||||||
|
|
||||||
fyi, let's break down the url: `http://admin:[APITOKEN]@alloces.lan:8080/job/gitea.arg.rip/credentials/store/folder/domain/greyn%20services/createCredentials`
|
|
||||||
* `APITOKEN` - there's one in keepass
|
|
||||||
* `http://user:token@jenkinshost:8080/` I think that's curl basic auth. fear dot jay peg.
|
|
||||||
* the fuck is a crumb? idk, extra authorization. Jenkins wants it.
|
|
||||||
* `/job/gitea.arg.rip/job/franz` - you could use the above for a global credential, if you want. This way it's stored specifically under `franz`, which is under `gitea.arg.rip`
|
|
||||||
* `/credentials/store` jenkins API shit generally isn't under like, `jenkinsshit.gre.yn/api`; it's the same as where you view the web page. *head explodes sarcastically* what a concept. Automatic documentation since before Swagger was a thing. that's hilarious \*pats self on back\*, but fuck knows how I was supposed to find the word (and spelling) `createCredentials`.
|
|
||||||
* `/folder/domain/greyn%20services/` - imo ought to be with /job/gitea.arg.rip. it's like another parameter, this is the "domain". what *is* a domain? fuck knows, tbh.
|
|
||||||
* `createCredentials` - found via google search. no idea what others would be.
|
|
||||||
https://stackoverflow.com/a/38314286
|
|
||||||
|
|
||||||
|
|
||||||
# jenkinsfile deployment hints
|
|
||||||
|
|
||||||
```groovy
|
|
||||||
stage (‘Deploy’) {
|
|
||||||
sh ‘ssh user@server rm -rf /var/www/temp_deploy/dist/’
|
|
||||||
sh ‘ssh user@server mkdir -p /var/www/temp_deploy’
|
|
||||||
sh ‘scp -r dist user@server:/var/www/temp_deploy/dist/’
|
|
||||||
sh ‘ssh user@server “rm -rf /var/www/example.com/dist/ && mv /var/www/temp_deploy/dist/ /var/www/example.com/”’
|
|
||||||
}
|
|
||||||
```
|
|
Loading…
Reference in New Issue
Block a user