Add checks before deploy to server, also small fixes on content.
This commit is contained in:
parent
4c61829556
commit
72e1a8d447
132
.cspell.config.yaml
Normal file
132
.cspell.config.yaml
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
# https://cspell.org/configuration/
|
||||||
|
version: "0.2"
|
||||||
|
language: en,pt
|
||||||
|
dictionaries:
|
||||||
|
- en-us
|
||||||
|
- pt-br
|
||||||
|
- softwareTerms
|
||||||
|
- bash
|
||||||
|
- networking-terms
|
||||||
|
import:
|
||||||
|
- "@cspell/dict-pt-br/cspell-ext.json"
|
||||||
|
words:
|
||||||
|
- alice
|
||||||
|
- anubis
|
||||||
|
- asciidoctor
|
||||||
|
- bioinformaticians
|
||||||
|
- bioinformatics
|
||||||
|
- Clonezilla
|
||||||
|
- Configless
|
||||||
|
- cpus
|
||||||
|
- colortheme
|
||||||
|
- ctstate
|
||||||
|
- colorthemeswitcher
|
||||||
|
- comentario
|
||||||
|
- conntrack
|
||||||
|
- chacha
|
||||||
|
- cspell
|
||||||
|
- dport
|
||||||
|
- docker
|
||||||
|
- ESXi
|
||||||
|
- fail2ban
|
||||||
|
- findtime
|
||||||
|
- filesystems
|
||||||
|
- frontmatter
|
||||||
|
- GParted
|
||||||
|
- GSSAPI
|
||||||
|
- HELO
|
||||||
|
- hreflang
|
||||||
|
- icmpv6
|
||||||
|
- iptables
|
||||||
|
- ignoreip
|
||||||
|
- ip6tables
|
||||||
|
- ipset
|
||||||
|
- jails
|
||||||
|
- jsonld
|
||||||
|
- lastmod
|
||||||
|
- linkcheck
|
||||||
|
- linkinator
|
||||||
|
- lychee
|
||||||
|
- markdownlint
|
||||||
|
- maxretry
|
||||||
|
- mathjax
|
||||||
|
- mermaid
|
||||||
|
- nerdalert
|
||||||
|
- netcat
|
||||||
|
- noindex
|
||||||
|
- nvme
|
||||||
|
- opencode
|
||||||
|
- oque
|
||||||
|
- pagination
|
||||||
|
- PagerSize
|
||||||
|
- QUIC
|
||||||
|
- rsync
|
||||||
|
- sshaudit
|
||||||
|
- sbatch
|
||||||
|
- scancel
|
||||||
|
- scontrol
|
||||||
|
- sinfo
|
||||||
|
- slurmd
|
||||||
|
- slurmctld
|
||||||
|
- slurmdbd
|
||||||
|
- squeue
|
||||||
|
- srun
|
||||||
|
- shortcodes
|
||||||
|
- Sysadmin
|
||||||
|
- sysadmin
|
||||||
|
- textlint
|
||||||
|
- trafego
|
||||||
|
- Thanwer
|
||||||
|
- TOML
|
||||||
|
- umami
|
||||||
|
- Umami
|
||||||
|
- VMDK
|
||||||
|
- VMX
|
||||||
|
- webserver
|
||||||
|
- yamllint
|
||||||
|
- ZgotmplZ
|
||||||
|
- arancibia
|
||||||
|
- thanwer
|
||||||
|
- bantime
|
||||||
|
- bootable
|
||||||
|
- configless
|
||||||
|
- dropadas
|
||||||
|
- dropar
|
||||||
|
- dropamos
|
||||||
|
- enablecolorthemeswitcher
|
||||||
|
- Gparted
|
||||||
|
- hugo
|
||||||
|
- icds
|
||||||
|
- JOBID
|
||||||
|
- nmap
|
||||||
|
- Nmap
|
||||||
|
- NODELIST
|
||||||
|
- nodelist
|
||||||
|
- ntasks
|
||||||
|
- readnextposts
|
||||||
|
- shinobi
|
||||||
|
- Slurm
|
||||||
|
- slurm
|
||||||
|
- slurmctl
|
||||||
|
- socialicons
|
||||||
|
- TIMELIMIT
|
||||||
|
- unbootable
|
||||||
|
- Universität
|
||||||
|
- pietro
|
||||||
|
flagWords: []
|
||||||
|
ignorePaths:
|
||||||
|
- node_modules
|
||||||
|
- public
|
||||||
|
- resources
|
||||||
|
- .git
|
||||||
|
- "*.gif"
|
||||||
|
- "*.png"
|
||||||
|
- "*.jpg"
|
||||||
|
- "*.webp"
|
||||||
|
- "*.svg"
|
||||||
|
- "*.ico"
|
||||||
|
- themes
|
||||||
|
- "package.json"
|
||||||
|
- "package-lock.json"
|
||||||
|
enableFiletypes:
|
||||||
|
- markdown
|
||||||
14
.lychee.toml
Normal file
14
.lychee.toml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# https://github.com/lycheeverse/lychee
|
||||||
|
exclude = [
|
||||||
|
"linkedin\\.com",
|
||||||
|
"facebook\\.com",
|
||||||
|
"instagram\\.com",
|
||||||
|
"x\\.com",
|
||||||
|
"t\\.me",
|
||||||
|
"telegram\\.me",
|
||||||
|
"youtube\\.com",
|
||||||
|
"sshaudit\\.com",
|
||||||
|
]
|
||||||
|
exclude_private = true
|
||||||
|
timeout = 20
|
||||||
|
max_retries = 2
|
||||||
7
.lycheeignore
Normal file
7
.lycheeignore
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
linkedin\.com
|
||||||
|
facebook\.com
|
||||||
|
instagram\.com
|
||||||
|
x\.com
|
||||||
|
t\.me
|
||||||
|
telegram\.me
|
||||||
|
youtube\.com
|
||||||
63
.markdownlint-cli2.yaml
Normal file
63
.markdownlint-cli2.yaml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# https://github.com/DavidAnson/markdownlint-cli2
|
||||||
|
frontMatter: (^\+\+\+$[^]*?^\+\+\+$)
|
||||||
|
|
||||||
|
globs:
|
||||||
|
- "content/**/*.md"
|
||||||
|
|
||||||
|
config:
|
||||||
|
MD001: true
|
||||||
|
MD003:
|
||||||
|
style: atx
|
||||||
|
MD004:
|
||||||
|
style: dash
|
||||||
|
MD005: true
|
||||||
|
MD007: false
|
||||||
|
MD009: true
|
||||||
|
MD010: true
|
||||||
|
MD011: true
|
||||||
|
MD012: true
|
||||||
|
MD013: false
|
||||||
|
MD014: true
|
||||||
|
MD018: true
|
||||||
|
MD019: true
|
||||||
|
MD020: true
|
||||||
|
MD021: true
|
||||||
|
MD022: true
|
||||||
|
MD023: true
|
||||||
|
MD024: false
|
||||||
|
MD025:
|
||||||
|
front_matter_title: "\\s*title\\s*="
|
||||||
|
level: 1
|
||||||
|
MD026: true
|
||||||
|
MD027: true
|
||||||
|
MD028: false
|
||||||
|
MD029:
|
||||||
|
style: one
|
||||||
|
MD030: true
|
||||||
|
MD031: true
|
||||||
|
MD032: true
|
||||||
|
MD033: false
|
||||||
|
MD034: false
|
||||||
|
MD035:
|
||||||
|
style: ---
|
||||||
|
MD036: true
|
||||||
|
MD037: true
|
||||||
|
MD038: true
|
||||||
|
MD039: true
|
||||||
|
MD040: true
|
||||||
|
MD041: false
|
||||||
|
MD042: true
|
||||||
|
MD043: false
|
||||||
|
MD044: false
|
||||||
|
MD045: true
|
||||||
|
MD046: false
|
||||||
|
MD047: true
|
||||||
|
MD048:
|
||||||
|
style: backtick
|
||||||
|
MD049:
|
||||||
|
style: underscore
|
||||||
|
MD050:
|
||||||
|
style: asterisk
|
||||||
|
MD051: false
|
||||||
|
MD052: true
|
||||||
|
MD053: true
|
||||||
56
.markdownlintrc
Normal file
56
.markdownlintrc
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
MD001: true
|
||||||
|
MD003:
|
||||||
|
style: atx
|
||||||
|
MD004:
|
||||||
|
style: dash
|
||||||
|
MD005: true
|
||||||
|
MD007: false
|
||||||
|
MD009: true
|
||||||
|
MD010: true
|
||||||
|
MD011: true
|
||||||
|
MD012: true
|
||||||
|
MD013: false
|
||||||
|
MD014: true
|
||||||
|
MD018: true
|
||||||
|
MD019: true
|
||||||
|
MD020: true
|
||||||
|
MD021: true
|
||||||
|
MD022: true
|
||||||
|
MD023: true
|
||||||
|
MD024: false
|
||||||
|
MD025:
|
||||||
|
front_matter_title: "\\s*title\\s*="
|
||||||
|
level: 1
|
||||||
|
MD026: true
|
||||||
|
MD027: true
|
||||||
|
MD028: false
|
||||||
|
MD029:
|
||||||
|
style: one
|
||||||
|
MD030: true
|
||||||
|
MD031: true
|
||||||
|
MD032: true
|
||||||
|
MD033: false
|
||||||
|
MD034: false
|
||||||
|
MD035:
|
||||||
|
style: ---
|
||||||
|
MD036: true
|
||||||
|
MD037: true
|
||||||
|
MD038: true
|
||||||
|
MD039: true
|
||||||
|
MD040: true
|
||||||
|
MD041: false
|
||||||
|
MD042: true
|
||||||
|
MD043: false
|
||||||
|
MD044: false
|
||||||
|
MD045: true
|
||||||
|
MD046: false
|
||||||
|
MD047: true
|
||||||
|
MD048:
|
||||||
|
style: backtick
|
||||||
|
MD049:
|
||||||
|
style: underscore
|
||||||
|
MD050:
|
||||||
|
style: asterisk
|
||||||
|
MD051: false
|
||||||
|
MD052: true
|
||||||
|
MD053: true
|
||||||
39
.pre-commit-config.yaml
Normal file
39
.pre-commit-config.yaml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v5.0.0
|
||||||
|
hooks:
|
||||||
|
- id: check-merge-conflict
|
||||||
|
- id: check-yaml
|
||||||
|
- id: check-toml
|
||||||
|
- id: check-json
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: mixed-line-ending
|
||||||
|
args: [--fix=auto]
|
||||||
|
- id: trailing-whitespace
|
||||||
|
args: [--markdown-linebreak-ext=md]
|
||||||
|
- id: check-added-large-files
|
||||||
|
args: [--maxkb=1024]
|
||||||
|
|
||||||
|
- repo: https://github.com/igorshubovych/markdownlint-cli
|
||||||
|
rev: v0.48.0
|
||||||
|
hooks:
|
||||||
|
- id: markdownlint
|
||||||
|
args: [--config, .markdownlintrc]
|
||||||
|
|
||||||
|
- repo: https://github.com/streetsidesoftware/cspell-cli
|
||||||
|
rev: v10.0.0
|
||||||
|
hooks:
|
||||||
|
- id: cspell
|
||||||
|
args: [--no-summary, --no-progress, --config, .cspell.config.yaml]
|
||||||
|
additional_dependencies:
|
||||||
|
- "@cspell/dict-pt-br"
|
||||||
|
types: [markdown]
|
||||||
|
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: lychee
|
||||||
|
name: lychee
|
||||||
|
entry: lychee
|
||||||
|
args: [--config, .lychee.toml, --root-dir, static, --no-progress]
|
||||||
|
language: system
|
||||||
|
types: [markdown]
|
||||||
@ -58,9 +58,9 @@ I invite you to read the [nc man page](https://linux.die.net/man/1/nc).
|
|||||||
|
|
||||||
The main options we need to use are:
|
The main options we need to use are:
|
||||||
|
|
||||||
* -p : This specifies which port should we listen to.
|
- -p : This specifies which port should we listen to.
|
||||||
* -k : This makes netcat to keep listening after a client disconnects.
|
- -k : This makes netcat to keep listening after a client disconnects.
|
||||||
* -u : Use UDP instead of TCP
|
- -u : Use UDP instead of TCP
|
||||||
|
|
||||||
### Use cases
|
### Use cases
|
||||||
|
|
||||||
|
|||||||
@ -59,9 +59,9 @@ Lhes convido a ler a [man page do nc](https://linux.die.net/man/1/nc).
|
|||||||
|
|
||||||
Os principais argumentos que precisamos são:
|
Os principais argumentos que precisamos são:
|
||||||
|
|
||||||
* -p : Isso especifica a porta que queremos escutar.
|
- -p : Isso especifica a porta que queremos escutar.
|
||||||
* -k : Isso mantem o netcat aberto mesmo depois do cliente desconectar.
|
- -k : Isso mantém o netcat aberto mesmo depois do cliente desconectar.
|
||||||
* -u : Isso faz o netcat escutar UDP em vez de TCP.
|
- -u : Isso faz o netcat escutar UDP em vez de TCP.
|
||||||
|
|
||||||
### Casos de uso
|
### Casos de uso
|
||||||
|
|
||||||
@ -89,9 +89,9 @@ Veja um exemplo disso funcionando:
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
#### Transferencia de arquivos
|
#### Transferência de arquivos
|
||||||
|
|
||||||
O netcat tambem pode ser usado para transferir arquivos entre dois hosts, isso é util em casos de ambientes sem acessos FTP ou SCP.
|
O netcat também pode ser usado para transferir arquivos entre dois hosts, isso é util em casos de ambientes sem acessos FTP ou SCP.
|
||||||
|
|
||||||
No receptor:
|
No receptor:
|
||||||
|
|
||||||
|
|||||||
@ -79,4 +79,4 @@ This will leave you with the original VMDK file, and a smaller one. After verify
|
|||||||
|
|
||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
Using Clonezilla to clone to a smaller disk is a safe and reliable method to shrink VMDK files without touching VMX files directly. While it requires more steps than the manual approach, it reduces the risk of configuration errors that could leave your VM unbootable. As always, keep backups before attempting any disk resizing operations.
|
Using Clonezilla to clone to a smaller disk is a safe and reliable method to shrink VMDK files without touching VMX files directly. While it requires more steps than the manual approach, it reduces the risk of configuration errors that could leave your VM unbootable. As always, keep backups before attempting any disk resizing operations.
|
||||||
|
|||||||
@ -50,10 +50,10 @@ The main workflow of Slurm is quite simple:
|
|||||||
python my_script.py
|
python my_script.py
|
||||||
```
|
```
|
||||||
|
|
||||||
2. The user submits a job to the Slurm controller using the `sbatch` command
|
1. The user submits a job to the Slurm controller using the `sbatch` command
|
||||||
3. The Slurm controller adds the job to the queue and assigns it a job ID
|
1. The Slurm controller adds the job to the queue and assigns it a job ID
|
||||||
4. The Slurm controller schedules the job to run on a compute node when resources are available
|
1. The Slurm controller schedules the job to run on a compute node when resources are available
|
||||||
5. The compute node executes the job and sends the output back to the user
|
1. The compute node executes the job and sends the output back to the user
|
||||||
|
|
||||||
The user can monitor the job status using the `squeue` command.
|
The user can monitor the job status using the `squeue` command.
|
||||||
The administrator can manage the jobs using the `scancel` command to cancel a job, or the `scontrol` command to modify a job.
|
The administrator can manage the jobs using the `scancel` command to cancel a job, or the `scontrol` command to modify a job.
|
||||||
@ -120,7 +120,7 @@ Since Slurm is very popular in the academic world, there are many universities t
|
|||||||
|
|
||||||
### Configless mode
|
### Configless mode
|
||||||
|
|
||||||
Since Slurm 20.02, it supports a configless mode, which means that you don't need to create a `/etc/slurm/slurm.conf` file on each node, instead, you can use the `slurmctld` to distribute the configuration to all nodes.
|
Since Slurm 20.02, it supports a configless mode, which means that you don't need to create a `/etc/slurm/slurm.conf` file on each node, instead, you can use the `slurmctld` to distribute the configuration to all nodes.
|
||||||
|
|
||||||
This is a great feature, and it simplifies the installation process a lot. [The official documentation is here](https://slurm.schedmd.com/configless_slurm.html).
|
This is a great feature, and it simplifies the installation process a lot. [The official documentation is here](https://slurm.schedmd.com/configless_slurm.html).
|
||||||
|
|
||||||
@ -145,6 +145,6 @@ Slurm-Mail is a drop in replacement for Slurm's e-mails to give users much more
|
|||||||
|
|
||||||
Now this is a feature that I was not aware of, but Slurm has a built-in power saving feature, which allows you to automatically power on/off compute nodes based on demand.
|
Now this is a feature that I was not aware of, but Slurm has a built-in power saving feature, which allows you to automatically power on/off compute nodes based on demand.
|
||||||
|
|
||||||
It relies on scripts that you need to provide, one for powering on a node, and another for powering off a node. You can find the documentation [here](https://slurm.schedmd.com/power_save.html).
|
It relies on scripts that you need to provide, one for powering on a node, and another for powering off a node. You can find the [Slurm power saving documentation](https://slurm.schedmd.com/power_save.html).
|
||||||
|
|
||||||
In my case I adapted [the scripts from here](https://github.com/OleHolmNielsen/Slurm_tools/tree/master/power_save) to use IPMI to power on/off the nodes.
|
In my case I adapted [the scripts from here](https://github.com/OleHolmNielsen/Slurm_tools/tree/master/power_save) to use IPMI to power on/off the nodes.
|
||||||
|
|||||||
@ -33,7 +33,7 @@ PermitRootLogin no
|
|||||||
|
|
||||||
### Autenticação por dois fatores (2FA)
|
### Autenticação por dois fatores (2FA)
|
||||||
|
|
||||||
Se voce quiser mais um nivel de segurança, voce pode implementar [autenticação de dois fatores com o Google Authenticator](https://docs.vultr.com/how-to-use-two-factor-authentication-with-sudo-and-ssh-on-linux-with-google-authenticator).
|
Se voce quiser mais um nível de segurança, voce pode implementar [autenticação de dois fatores com o Google Authenticator](https://docs.vultr.com/how-to-use-two-factor-authentication-with-sudo-and-ssh-on-linux-with-google-authenticator).
|
||||||
|
|
||||||
### Desativar métodos de autenticação não utilizados
|
### Desativar métodos de autenticação não utilizados
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ GSSAPIAuthentication no
|
|||||||
|
|
||||||
## Melhorar algoritmos de criptografia do SSH
|
## Melhorar algoritmos de criptografia do SSH
|
||||||
|
|
||||||
Seguindo [esses guias](https://www.sshaudit.com/hardening_guides.html) voce pode desabilitar algoritmos de autenticação e criptografia vulneraveis e priorizar os mais fortes (AES-256-GCM, chacha20-poly1305).
|
Seguindo [esses guias](https://www.sshaudit.com/hardening_guides.html) voce pode desabilitar algoritmos de autenticação e criptografia vulneráveis e priorizar os mais fortes (AES-256-GCM, chacha20-poly1305).
|
||||||
|
|
||||||
Quando voce terminar, verifique com a ferramenta [ssh-audit](https://github.com/jtesta/ssh-audit).
|
Quando voce terminar, verifique com a ferramenta [ssh-audit](https://github.com/jtesta/ssh-audit).
|
||||||
|
|
||||||
|
|||||||
16
deploy.sh
16
deploy.sh
@ -1,2 +1,16 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
hugo --minify && rsync -avz --delete public/ shinobi.thanwer.com:/srv/www/blog/
|
set -euo pipefail
|
||||||
|
|
||||||
|
echo "=== Running pre-commit hooks ==="
|
||||||
|
pre-commit run --all-files
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== Building site ==="
|
||||||
|
hugo --minify
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== Deploying to server ==="
|
||||||
|
rsync -avz --delete public/ shinobi.thanwer.com:/srv/www/blog/
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== Done ==="
|
||||||
|
|||||||
@ -6,4 +6,4 @@
|
|||||||
'floating-chat.donateButton.background-color': '#794bc4',
|
'floating-chat.donateButton.background-color': '#794bc4',
|
||||||
'floating-chat.donateButton.text-color': '#fff'
|
'floating-chat.donateButton.text-color': '#fff'
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -53,4 +53,4 @@
|
|||||||
</ul>
|
</ul>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 419 KiB After Width: | Height: | Size: 419 KiB |
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
_ _
|
_ _
|
||||||
| | | |_ _ _ __ ___ __ _ _ __ ___
|
| | | |_ _ _ __ ___ __ _ _ __ ___
|
||||||
| |_| | | | | '_ ` _ \ / _` | '_ \/ __|
|
| |_| | | | | '_ ` _ \ / _` | '_ \/ __|
|
||||||
| _ | |_| | | | | | | (_| | | | \__ \
|
| _ | |_| | | | | | | (_| | | | \__ \
|
||||||
|_| |_|\__,_|_| |_| |_|\__,_|_| |_|___/
|
|_| |_|\__,_|_| |_| |_|\__,_|_| |_|___/
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user