Mise à jour de 'How to create a new LXC'
parent
8b4ddd9ba2
commit
10e7fd1eff
@ -109,10 +109,11 @@ creation:
|
||||
- <name of program>
|
||||
```
|
||||
|
||||
Types of conditions :
|
||||
#### Types of conditions :
|
||||
<details>
|
||||
<summary>Programs</summary>
|
||||
|
||||
*Checks if a program is installed or not*
|
||||
```yaml
|
||||
program: <name of program>
|
||||
```
|
||||
@ -128,6 +129,7 @@ programs:
|
||||
<details>
|
||||
<summary>Files</summary>
|
||||
|
||||
*Checks if a file exist or not*
|
||||
```yaml
|
||||
file: <name of program>
|
||||
```
|
||||
@ -137,13 +139,13 @@ files:
|
||||
- <path to file 1>
|
||||
- <path to file 2>
|
||||
```
|
||||
|
||||
*You can use either ``file`` or ``files``, they do the same thing*
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Folders</summary>
|
||||
|
||||
*Checks if a folder exist or not*
|
||||
```yaml
|
||||
folder: <name of program>
|
||||
```
|
||||
@ -153,11 +155,346 @@ folders:
|
||||
- <path to folder 1>
|
||||
- <path to folder 2>
|
||||
```
|
||||
|
||||
*You can use either ``folder`` or ``folders``, they do the same thing*
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Commands (TODO) </summary>
|
||||
|
||||
*Checks if a command return the expected value*
|
||||
```yaml
|
||||
command: [ <command to run>, <value expected> ]
|
||||
```
|
||||
|
||||
```yaml
|
||||
commands:
|
||||
- [ <command to run 1>, <value expected 1> ]
|
||||
- [ <command to run 2>, <value expected 2> ]
|
||||
```
|
||||
*You can use either ``command`` or ``commands``, they do the same thing*
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Docker containers (TODO) </summary>
|
||||
|
||||
*Checks if a docker container exist or not*
|
||||
```yaml
|
||||
docker: <name of docker container>
|
||||
```
|
||||
|
||||
```yaml
|
||||
docker:
|
||||
- <name of docker container 1>
|
||||
- <name of docker container 2>
|
||||
```
|
||||
</details>
|
||||
|
||||
### Steps
|
||||
|
||||
The steps are the actual commands that will be run during the creation or the deployment process.
|
||||
The steps are used in both the creation and the deploy process.
|
||||
|
||||
#### A note about the different paths
|
||||
When you have to specify a path, you can use the prefix ``/global/`` to use the root folder or your repo. (`<repo>/`)
|
||||
If nothing is specified, the script will use the VM/LXC folder (`<repo>/lxc/<id>/`).
|
||||
|
||||
#### Types of steps :
|
||||
|
||||
<details>
|
||||
<summary>Scripts</summary>
|
||||
|
||||
*Run a script from your repo*
|
||||
```yaml
|
||||
- type: script
|
||||
path: <path to script>
|
||||
```
|
||||
|
||||
*Run a script from an online source*
|
||||
```yaml
|
||||
- type: script
|
||||
url: <url to script>
|
||||
```
|
||||
|
||||
*Run a script from inside the LXC*
|
||||
```yaml
|
||||
- type: script
|
||||
lxc_path: <path to script inside the lxc>
|
||||
```
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Files</summary>
|
||||
|
||||
*Create a file*
|
||||
```yaml
|
||||
- type: file_create
|
||||
path: <path to file>
|
||||
permissions: <permission of the file, default 644>
|
||||
owner: <owner of the file, default root:root>
|
||||
```
|
||||
|
||||
*Copy a file from your repo to the LXC*
|
||||
```yaml
|
||||
- type: file_copy
|
||||
path: <path to file>
|
||||
destination: <path to file inside the lxc>
|
||||
permissions: <permission of the file, default 644>
|
||||
owner: <owner of the file, default root:root>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Folders</summary>
|
||||
|
||||
*Create a folder*
|
||||
```yaml
|
||||
- type: folder_create
|
||||
path: <path to folder>
|
||||
permissions: <permission of the folder, default 755>
|
||||
owner: <owner of the folder, default root:root>
|
||||
```
|
||||
|
||||
*Copy a folder from your repo to the LXC*
|
||||
```yaml
|
||||
- type: folder_copy
|
||||
path: <path to folder>
|
||||
destination: <path to folder inside the lxc>
|
||||
permissions: <permission of the folder, default 755>
|
||||
owner: <owner of the folder, default root:root>
|
||||
```
|
||||
*Note: `folder_copy` creates the folder if it doesn't exist*
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Commands</summary>
|
||||
|
||||
*Run a command inside the LXC*
|
||||
```yaml
|
||||
- type: command
|
||||
command: <command to run>
|
||||
```
|
||||
|
||||
*Run multiples commands inside the LXC*
|
||||
```yaml
|
||||
- type: command
|
||||
commands:
|
||||
- <command to run 1>
|
||||
- <command to run 2>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Docker</summary>
|
||||
|
||||
*Run a command inside a docker container*
|
||||
```yaml
|
||||
- type: docker
|
||||
container: <name of docker container>
|
||||
command: <command to run>
|
||||
```
|
||||
|
||||
*Run multiples commands inside a docker container (TODO)*
|
||||
```yaml
|
||||
- type: docker
|
||||
container: <name of docker container>
|
||||
commands:
|
||||
- <command to run 1>
|
||||
- <command to run 2>
|
||||
```
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Docker Compose</summary>
|
||||
|
||||
*Run a docker compose command*
|
||||
```yaml
|
||||
- type: docker_compose
|
||||
command: <command to run> # ex: up -d
|
||||
```
|
||||
*Note : Here, why not use the `command` step? Docker Compose can sometimes be executed with `docker-compose` or `docker compose`, the script will take care of choosing the correct one using this method.*
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Git</summary>
|
||||
|
||||
*Clone a git repository (TODO)*
|
||||
```yaml
|
||||
- type: git_clone
|
||||
url: <url of the git repository>
|
||||
destination: <path to the folder where the repo will be cloned>
|
||||
```
|
||||
|
||||
*Pull a git repository (TODO)*
|
||||
```yaml
|
||||
- type: git_pull
|
||||
path: <path to the git repository>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Download</summary>
|
||||
|
||||
*Download a file*
|
||||
```yaml
|
||||
- type: download
|
||||
url: <url of the file>
|
||||
destination: <path to the folder where the file will be downloaded>
|
||||
```
|
||||
|
||||
*Download multiple files*
|
||||
```yaml
|
||||
- type: download
|
||||
url:
|
||||
- <url of the file 1>
|
||||
- <url of the file 2>
|
||||
destination: <path to the folder where the files will be downloaded>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Packages</summary>
|
||||
|
||||
*Install a package (TOCHECK)*
|
||||
```yaml
|
||||
- type: install_package
|
||||
package: <name of the package>
|
||||
```
|
||||
|
||||
*Install multiple packages (TOCHECK)*
|
||||
```yaml
|
||||
- type: install_package
|
||||
packages:
|
||||
- <name of the package 1>
|
||||
- <name of the package 2>
|
||||
```
|
||||
|
||||
*Remove a package (TOCHECK)*
|
||||
```yaml
|
||||
- type: remove_package
|
||||
package: <name of the package>
|
||||
```
|
||||
|
||||
*Remove multiple packages (TOCHECK)*
|
||||
```yaml
|
||||
- type: remove_package
|
||||
packages:
|
||||
- <name of the package 1>
|
||||
- <name of the package 2>
|
||||
```
|
||||
|
||||
*Note : all major package manager should be supported*
|
||||
*Warning : Packages can have different names depending on the Linux distribution.*
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Power</summary>
|
||||
|
||||
*Reboot the LXC*
|
||||
```yaml
|
||||
- type: reboot
|
||||
```
|
||||
|
||||
*Shutdown the LXC*
|
||||
```yaml
|
||||
- type: shutdown
|
||||
```
|
||||
|
||||
*Start the LXC (should usually never be used)*
|
||||
```yaml
|
||||
- type: start
|
||||
```
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Services (TODO)</summary>
|
||||
|
||||
*Start a service*
|
||||
```yaml
|
||||
- type: service_start
|
||||
service: <name of the service>
|
||||
```
|
||||
|
||||
*Stop a service*
|
||||
```yaml
|
||||
- type: service_stop
|
||||
service: <name of the service>
|
||||
```
|
||||
|
||||
*Restart a service*
|
||||
```yaml
|
||||
- type: service_restart
|
||||
service: <name of the service>
|
||||
```
|
||||
|
||||
*Enable a service*
|
||||
```yaml
|
||||
- type: service_enable
|
||||
service: <name of the service>
|
||||
```
|
||||
|
||||
*Disable a service*
|
||||
```yaml
|
||||
- type: service_disable
|
||||
service: <name of the service>
|
||||
```
|
||||
|
||||
*Note: should support systemd and openrc*
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Replace in file (TODO)</summary>
|
||||
|
||||
*Replace a string in a file*
|
||||
```yaml
|
||||
- type: replace_in_file
|
||||
path: <path to the file>
|
||||
search: <string to search>
|
||||
replace: <string to replace>
|
||||
case_sensitive: <true or false, default true>
|
||||
```
|
||||
|
||||
*Replace a string in multiple files*
|
||||
```yaml
|
||||
- type: replace_in_file
|
||||
path:
|
||||
- <path to the file 1>
|
||||
- <path to the file 2>
|
||||
search: <string to search>
|
||||
replace: <string to replace>
|
||||
case_sensitive: <true or false, default true>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Unzip</summary>
|
||||
|
||||
*Unzip a file*
|
||||
```yaml
|
||||
- type: unzip
|
||||
path: <path to the file>
|
||||
destination: <path to the folder where the file will be unzipped>
|
||||
```
|
||||
*Note: supports zip and tar.gz files*
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Wait (TODO)</summary>
|
||||
|
||||
*Wait X seconds*
|
||||
```yaml
|
||||
- type: wait
|
||||
seconds: <number of seconds to wait>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user