Skip to content

MonetDBSolutions/monetdb-ansible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Provisioning MonetDB nodes with Ansible

This repository started as an attempt to facilitate the work on the Exanest project, by providing an abstract, but executable, description for the provisioning of nodes.

Early in the project we realized that exchanging KVM images with various software (in our case MonetDB) pre-installed, is unpractical mainly because of the size of these images. We decided to attempt to abstract this procedure and provisioning software was a good fit for what we needed. So we chose to use Ansible to abstract and automate the procedure of installing software on exanest nodes.

Ansible has a very definite advantage in the context of Exanest over other automation software (Puppet, Chef, etc): It is agent-less and only needs a working SSH connection.

In order to run this configuration you need the following:

  • Have ansible installed on your computer
  • Have a working SSH connection on the node(s) you want to configure.

Specific assumptions are recorded in each role.

Available roles

Download cache

Make sure that files are downloaded in the host running ansible once, and upload them from here to the nodes. Instead of downloading the MonetDB tarball in every node, download it once at the localhost and upload it to the node when provisioning.

Exanest node

This role prepares a server as an exanest node. Specifically it creates a user exanest and adds an ssh public key to the authorized key list of that user. The key should be placed at roles/exanest_node/files/public_key.

Assumptions:

  • The root password is centos. You can change it in the file roles/exanest_node/vars/main.yml (the value of ansible_ssh_pass).

Monetdb node

This role downloads and installs MonetDB. It depends on the role Exanest node, i.e. it will run that role, before attempting to proceed.

Assumptions:

  • The node is an AArch64 processor running CentOS. (The MonetDB version installed is the precompiled MonetDB for CentOS AArch64).

TPC-H node

This role, continues from the Monetdb role. It compiles a generator for TPC-H data, runs it, and loads the data in MonetDB. By default it will generate scale factor 0.1 (100 MB), but this is configurable with the variables scale_factor and db_name. For example in order to generate and load scale factor 1 you need to change both to the value 1.

The data is loaded in a database with name SF-{{ db_name }} (eg SF-1).

Assumptions:

  • MonetDB node has been prepared previously.

Security notes

This project was created in order to facilitate the work in the Exanest project. Every time there was a trade-off between convenience and security, convenience was chosen. Be warned.

A (non complete) list of security concerns follows:

  • Ansible is configured so as not to check node SSH keys
  • The root password is explicitly recorded in the file roles/exanest_node/vars/main.yml
  • The exanest user password is recorded in the file roles/monetdb_node/vars/main.yml
  • The exanest user password is itself exanest

All in all, this project is not secure.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published