The main relationships between the files are shown in the picture below.
Pipeline defines the stages Plan and Apply, and refers to all Terraform files located in the Terraform folder. The actual Terraform commands are executed in the pool agent.
In order to get things working, one has to create self-hosted agent. The overall working setup is depicted in the picture below:
Fixing naming conflicts in files:
- providers.tf
- tfdemo.env01.tfvars
Had to define local pool in tfdemo.env01.tfvars:
- pool:
name: Local
demands: Agent.Name -equals MUNACER
Something not mentioned in the original instructions, is how to delete the resources you have just created.
One way to delete the resources is to use a duplicate of the pipeline and adding “-destroy” parameter to all Terraform plan and apply commands
Here is an example below:
tfdemo-destroy-part1.yml
- pointing the template to the next yml file:
template: tfdemo-destroy-part2.yml
tfdemo-destroy-part2.yml
- adding "-destroy" to Plan and Apply stages:
terraform plan -destroy ...
terraform apply -destroy ...
First i had to install Terraform onto the PC. During the test, I did have some trouble with naming conflicts and having to figure out some authentication mishaps, but after those were resolved it worked as intended.
Here is a picture i made of the setup
The Terraform script in the test creates various resources in Azure, e.g. VM (Virtual Machine) that is accessible from the internet. There is actually a nice tool in Azure that lets one see the connections/dependencies of different resources. It’s called Resource Visualizer
A picture of the view Resource Visualizer showed me
The test’s execution was quite straightforward. I essentially just used the following four commands: terraform init terraform plan -out=terraform-run4.tfstate terraform apply “terraform-run4.tfstate” terraform destroy
In the future I have intentions of replicating a similar test to this one with Azure DevOps and Terraform.
Today I will briefly cover what I have learned from using a Virtual Machine (VM) to run WordPress.
For this project I used the pre-packaged Virtual Machine image for the VMware Workstation player that is provided by bitnami. (More information can be found from the links at the bottom of this post!)
The setup seems to be pretty well done. It was good for learning more about the setup itself as well as the integration. (eg. apache webserver configuration and wordpress configuration for connecting to database.)
The home PC (host OS) is running MS Windows, while the quest OS is running debian linux.
Here is the simplified diagram of all the main components.
The connections to virtual machine are only possible from the host OS (since the virtual network “VMNet8” of the VMware workstation player does not allow incoming connection from outside).
The figure below shows how the normal wordpress user on home PC can connect to the apache/wordpress; while admin access to quest OS, PhpMyAdmin and Maria DB requires connection to ssh server.
To connect to the PhpMyAdmin or Maria DB, one can use putty with port forwarding.
When the ssh session is opened, local port in host OS is opened by putty and traffic arriving to that port is forwarded to pre-defined destination at the ssh server environment.
Here is a simplified view when tunnel is set up for PhPMyAdmin
When defining the local port in putty, remember not to allow connections from other hosts to the local port that was opened by putty. Bellow a picture for reference:
Hello all, I am back with more news and small projects I’ve been up to.
This time it is a project related to what colors are available in the color picker in draw.io.
Before we get more into this, a quick summary of what draw.io is:
Draw.io is a free online diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagrams. It can also be downloaded, which is what I have in use at the moment.
Then to the plan and results
Now, normally the draw.io color picker looks something like this:
While these options are great for their variety, for this project I wanted a simpler assortment of colors, that I was already familiar with.
That is how I ended up configuring the colors to look like the options in PowerPoint.
This is how the colors look in PowerPoint, for ease of reference.
That is how I made the following plan of action:
And then had this as the end result:
Not the most elegant looking solution, but it did what I wanted it to.
But how did we get here?
Draw.io is interesting for how you are able to modify it.
From the research I have done, if you know what you’re doing, anything is configurable and can be done following this path:
Extras -> Configuration…
Then clicking on “Configuration..” will open this view:
And after entering the wanted JSON configuration, clicking apply and restarting the software, the changes will take effect.
In case anyone would want to try doing the same configuration I will embed what I used bellow:
Hello, once again, and welcome all to an example on how to go from an ER diagram into a DB schema!
We will look into this example, by usin Videolister, which I did an update on a little while ago. To develop and transform the videolister tool into an online tool, an ER-diagram (ER=Entity Relationship) was made for the new multi-user tool.
I used ERDplus to make it, but draw.io would be just as sufficient.
After making the ERDplus, I used DBeaver program to transform it into a database schema.
Though I used DBeaver to do this, it is also possible to create this using other similar programs, or the SQL language. With similar programs, and in DBeaver, the SQL portions are often created for you and your work in making the schema stays mostly visual.
Here are some examples of SQL that DBeaver created for “Linkkikokoelma” and “Videolinkki” tables:
After the tables have been added and connected visually, it’s time to add data into the tables. Here are some examples using the same tables as above:
All in all, I think DBeaver was quite easy to pick up and use (at least somewhat) effectively. It was very helpful in managing the general flow of database creation and modification.
I worked on a project that I am calling Videolister.
The idea for the project came from one of my friends. They mentioned storing link to various ukulele tutorials in a simple text editor, not all in one place, and how it was a chore to go through. So I thought of making a simple tool for maintaining list of links to youtube videos.
This was great for me as I was looking for a java object oriented programming exercise, and I had just found what I was looking for.
Bellow are some screenshots and explanations.
Here is the main screen of the program, after choosing a List. In this main screen you manage all added videos in the specific List.
Should you click the “Modify tags” button in the earlier view, you’d be met with this pop-up. In here you create and manage the tags that can then be added to your video for easier identification and searching.
Here is the “filter config” window, opened by the button with the same name on the main screen. It is essentially a rudimentary search system. It applies a filter on every video on the List and only shows those that match the given parameters.
I should have some pictures still saved from earlier versions and other neat things to give a sort of tutorial on how to make one. I might add it here at some point. Who knows?
Still there is one more picture for me to share:
This is a printed table of how the data is stored for the program to read. It’s not all the data it needs, but I thought it would be nice to get to see this for some. So there you go!
That was all this time around. Thanks for reading!
In this post it’s going to be used to make a BPMN diagram as an example, using draw.io’s BMPN 2 tools. The version of draw.io I am using is the standalone version.
Very usefull and handy for doing diagrams. It was fairly simple to use too! Please see the BPMN picture below:
Trying out getting first look on Dolibar. It was quite impressive functionality. Trying to connect things and figure out how things work was difficult at first though and it can feel overwhelming. Try to find some guides to help you out in the beginning and then just start experimenting!
Here are some screenshots:
Please note! In this, the windows version was used, and had to use http instead of https. For any real use, remember to implement https.
If you get interested in trying out Dolibarr yourself, you can find it here: https://www.dolibarr.org
This time I decided to setup a NextCloudPi with the help of my friend to see if it would be something we would like to use. We are interested to get our own video conference with screen sharing for doing some things (small projects) together.
NextCloud is a community sourced file hosting software similar to Dropbox, Office 365 or Google Drive. It’s main usage and feature is file storage and sharing, but add-ons, like a zoom-meeting/skype chat type of function, are quite readily available and easy to install.
We set it up to run on a Rasberry Pi 3. It isn’t the fastest, but it does what we wanted it to and it wasn’t that hard to get running. The diagram below shows the setup.
How the current setup works
We got the voice conference working, and screen sharing when we are both in the same network. But when in different networks, the screen sharing worked only for one.
As the system with raspberry was extremely slow, we will try next the same setup with an old laptop, to presumably increase the processing speed. If the same problem persists, then we fix it.