Files
MaxScale/system-test/Documentation/LOCAL_DEPLOYMENT.md
Esa Korhonen 08f5174915 MXS-2900 Rename maxscale-system-test directory to system-test
A link with the old directory name is provided.
2020-07-28 15:24:27 +03:00

167 lines
3.9 KiB
Markdown

# Local deployment
## Prepare MDBCI environment
_Libvirt_, _Docker_ and _Vagrant_, with a set of plugins, are needed for MDBCI.
Please follow the instructions [here](https://github.com/mariadb-corporation/mdbci/blob/integration/PREPARATION_FOR_MDBCI.md).
## Creating VMs for local tests
[test/create_local_config.sh](test/create_local_config.sh) script creates a set of virtual machines
(1 maxscale VM, 4 Master/Slave and 4 Galera).
Direct execution of create_local_config.sh requires manuall paramters setting.
It is easiler to ese create_local_config_libvirt.sh and create_local_config_docker.sh
Script usage:
```bash
. ~/build-scripts/test/create_local_config.sh <target> <name>
```
where
target - Maxscale binary repository name
name - name of virtual machines set
Note: '.' before command allows script to load all environmental variables (needed for 'maxscale-system-test').
All other parameters have to be defined as environmental variables before executing the script.
Examples of parameters definition can be found in the following scripts:
[test/create_local_config_libvirt.sh](test/create_local_config_libvirt.sh)
[test/create_local_config_docker.sh](test/create_local_config_docker.sh)
```bash
. ~/build-scripts/test/create_local_config_libvirt.sh <target> <name>
```
```bash
. ~/build-scripts/test/create_local_config_docker.sh <target> <name>
```
## Execute test
Clone and compile https://github.com/mariadb-corporation/MaxScale
Build tests:
```bash
cd Maxscale/maxscale-system-test
cmake .
make
```
if environmental variables are not set:
```bash
. ~/build-scripts/test/set_env_vagrant.sh <name>
```
Execute single test by starting test binary or use ctest to run all or selected tests (see https://cmake.org/cmake/help/v3.8/manual/ctest.1.html)
To see test output:
```bash
ctest -VV
```
## Destroying VMs
```bash
cd ~/mdbci/scripts
./clean_vms.sh <name>
```
## Reverting default snapshot
create_local_config.sh script takes one snapshot of recently created set of VMs. Snapshot name is 'clean'
If VMs are damaged during testing process it is easy to restore them:
```bash
~/mdbci/mdbci snapshot revert --path-to-nodes <name> --snapshot-name clean
```
If needed, more snapshots can be created:
```bash
cd ~/mdbci
./mdbci snapshot take --path-to-nodes <name> --snapshot-name <snapshot_name>
```
## Accessing VMs
```bash
cd ~/mdbci/<name>
vagrant ssh <vm_name>
```
where <vm_name> can be 'maxscale', 'node_XXX' or 'galera_XXX'.
```bash
. ~/build-scripts/test/set_env_vagrant.sh <name>
ssh -i $<vm_name>_keyfile $<vm_name>_whoami@$<vm_name>_network
```
examples:
```bash
ssh -i $node_002_keyfile $node_002_whoami@$node_002_network
ssh -i $maxscale_keyfile $maxscale_whoami@$maxscale_network
```
### Own VM configuration template
By default scripts use
~/build-scripts/test/template.libvirt.json
and
~/build-scripts/test/template.docker.json
These templates can be used as examples to create your own templates.
To use own template:
put your template file to ~/build-scripts/test/templates/
and define 'template_name' variable
```bash
export template_name=<your_template_filename>
. ~/build-scripts/test/create_local_config_libvirt.sh <target> <name>
```
## Troubleshooting
### More info about libvirt and vagrant-libvirt plugin
https://help.ubuntu.com/lts/serverguide/libvirt.html
https://github.com/vagrant-libvirt/vagrant-libvirt#installation
### Random VM creation failures
Plese check the amount of free memory and amount of running VMs
```bash
virsh list
docker ps
```
and remove all VMs and containers you do not need
### Wrong time on host server
If server time is wrong it can cause random problems. Please do time sync: use ntp or
```bash
sudo date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
```
### Info from OSLL wiki
#### Libvirt DNS resolving problem quick fix
https://dev.osll.ru/projects/mdbci/wiki/Libvirt_DNS_resolving_problem_quick_fix