Dimensigon
A game-changer in Cloud Era
Get Elastic!
Why should I learn about Dimensigon “DM”?
If you are an IT Professional with focus on Cloud and Automation. You will find DM very useful and it can improve not only your day-to-day but your whole company.
Would you be the first to implement it inside your company or not?
It does not require previous automation knowledge, of course the best background is when you have basics of Linux and you have a basic understanding of Cloud components.
If you like administering using a Command Line Interface (CLI), you will love DM.
Specially, if you are DBA, it would be a powertool for you because DM has been created by Database Experts.
Important to note, if you already excel an automation technology, DM will help you amplify your potential.

For this Hands-On practical tutorial, we will use Docker.
If you are looking for similar examples with Google Cloud or AWS, we will add them in the “Advanced” section later but you can contact us at any time for guidance.
Have fun and learn a lot!

Training Topology
Simulate 2 Silos to understand DM unique features

Pull the image (optional)
Pre-req Docker networking
Start the containers
docker pull danimoya/dimensigon-training-on-docker
docker network create network_a
docker network create network_b
docker run -dt --name dm0 --network network_a --network network_b danimoya/dimensigon-training-on-docker
docker run -dt --name dm1 --network network_a danimoya/dimensigon-training-on-docker
docker run -dt --name dm2 --network network_a danimoya/dimensigon-training-on-docker
docker run -dt --name dm3 --network network_b danimoya/dimensigon-training-on-docker
docker run -dt --name dm4 --network network_b danimoya/dimensigon-training-on-docker
Let's configure Dimensigon, our First-Node
docker exec -it dm0 bash -l
dimensigon new
# Start DM
nohup dimensigon &
Second to N Nodes (JOIN Preparation)
# For each NEW server to add, generate a NEW token for each server:
dimensigon token
At the new node (JOIN)
docker exec -it dm1 bash -l
dimensigon join <server_ip_network1> <token>
docker exec -it dm2 bash -l
dimensigon join <server_ip_network1> <token>
docker exec -it dm3 bash -l
dimensigon join <server_ip_network2> <token>
docker exec -it dm4 bash -l
dimensigon join <server_ip_network2> <token>
Using Software Library (SW Lib)
One main disadvantage of most automations technology is that you should have all necessary things available, locally, in order to run the automation.
At Dimensigon, we have designed DM to forget about where the software is and you can place it on-the-fly at target directory and continue your software installation.
This is because we have suffered many times the problem to upload software to machines with restricted network, to request a NFS Share to another IT Colleagues or to have kind of a software library locally to run different automations.
- Software Library is a easy way to register a Software that is somewhere in our network and place it wherever we need on demand to continue our orchestration (automation).
Add / Register Software
root@127.0.0.1:dshell> software add -husage: software add [-h] [--family FAMILY] name version file
positional arguments:
name
version
file
optional arguments:
-h, --help show this help message and exit
--family FAMILY
dshell> software add --family <family> <name> <version> <fullpath>
Test a Software "Send"
root@127.0.0.1:dshell> software send -h
usage: software send [-h] [--dest_path DEST_PATH] [--foreground] [--force]
software_id dest_server_id
positional arguments:
software_id
dest_server_id
optional arguments:
-h, --help show this help message and exit
--dest_path DEST_PATH
--foreground
--force
Pro Tip
Meanwhile the software is transferring, you can monitor the transaction via “transfer” command with DShell and this monitoring can be integrated to a GUI of your choice as Dimensigon DM is fully RESTful.
In case you have not used a “foreground” SEND and the software might be still transferring, use:
dshell> transfer list --last
Pro Tip
As you have seen, DShell is the CLI interface for Dimensigon but all request you are doing with DShell, they are making RESTful calls in the background, if you want to integrate DM in your company, it is easy and it makes your company very powerful to trigger whatever you want company-wide (if you allow it by privileges of course)
Log Federation (LogFed)
If you are installing a software in 30 nodes, you may not want to connect SSH to 30 nodes or wait for the automation to finish in 30 nodes to know the result.
Sometimes it is interesting to centralize some logs to the machine you usually connect to administrate your company (aka management server , jump server, etc).
If you are part of a huge multinational company, you might want to centralize by region, EMEA, APAC, etc.
Example use case, I want to deploy 30 Database servers but I am interested to check the main log meanwhile they are being created and/or after they have been created.
In this way, if anything fails during or after my automation, I can have in place an ELK or Log Analysis tool that it will raise an alert for me or I can simply have a multitail to grep for errors in 30 different logs, so I can see quickly the problem and have a wide overview from the comfort of my favorite server.
Subscribe to a log or whole directory
You can subscribe to a single file, usually a log file or to a whole directory, as well, you can specify recursive for a directory.
This can be used in the middle of an orchestration via POST or as a standalone command.
Unsubscribe
You can unsubscribe at any time from a log or directory by doing the following command.
Pro Tip
If you feel confident, you can include LogFed as part of your orchestration already to monitor “on-the-fly” what is going on, locally from a N number of servers.
For example, if you are using Oracle Database, you would like to see the “alert log” real-time when you are creating a Oracle RAC of N number of nodes. In case you are using Tibero Database, the “sys.log” would be of your interest in case of Tibero TAC creation or while making an automated switchover.
DShell (Interactive-Mode)
Creating a Hello World
Orchestration
DShell is based on prompt-toolkit.
Interacting with the commands and using “-h” for each subcommand will speed up your training.
Creating your first Orchestration
root@127.0.0.1:dshell> action create helloworld SHELLΔ action_template('helloworld')> set code
Δ action_template('helloworld')> submit
{
"id": "35cfe4be-5045-471f-be89-68a272887e30"
}
root@127.0.0.1:dshell> orch create helloworld
Δ orchestration('helloworld')> step do
Δ orchestration('helloworld'):1> set action_template_id
Δ orchestration('helloworld'):1.action_template_id> 35cfe4be-5045-471f-be89-68a272887e30
Δ orchestration('helloworld'):1> save
Δ orchestration('helloworld')> submit
DShell (Batch-mode)
Nesting DShell
Once you have your orchestrations, if you need to execute them from another script is easy, and also powerful because enables interacting with remote servers from anywhere because every server you have Dimensigon, you can manage the rest of them. (Decentralization)
In this section we teach you some examples on how to call “Hello World” from Batch-mode.
Options
dshell -h

Any of these options can be triggered from the OS command-line as a linux command.
No need for interactive session.
These commands can be embedded into another scripts or automations.
© Dimensigon. All rights reserved.