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