Deploying multiple vSphere VMs with Terraform

Automation doesn’t mean only the ability to automate some process and repeating it over and over again. It means also the ability to automate every automated process – if it’s possible of course. So even if we can automatically deploy VM, why shouldn’t we try to deploy multiple machines? Everything is fine until we need to deploy three, four or more same virtual servers. It would be very annoying unless we automate also this process – process of deploying multiple vSphere VMs with Terraform. If you haven’t read my previous article, you can do it here: Deploying vSphere VM with Terraform. Continue reading

Terraform vSphere provider is alive again – hostname variable

Yes, I have been waiting for it for a long time! When Hashicorp decided to separate Terraform Core from Providers, vSphere Provider died. It lasted two months – no merging, no new releases. But it has changed at the end of the August – Chris Marchesi (better known as vancluever) took the matter into his own hands and he’s now taking care of re the repository. It’s great news, especially for those of us who use Terraform in the daily work with the vSphere. Terraform vSphere provider allows to use different hostname and name Chris has made a lot of work since Continue reading

vCloud HCL generator – small update

I should have updated my vCloud HCL generator for Terraform immediately after releasing the 0.10 version of Terraform. Unfortunately, it has been done at 2nd August 2017, so I didn’t have enough time. And I should have made it after the separating providers from the Terraform Core because the possibility of using original and translated port exists in the vCloud Director Provider code since 16th June 2017! But today I found some time and I’ve updated my code, so now it’s compatible with Terraform again. It’s a very small change because I’ve added only the one additional line with one Continue reading

How to use credentials in Jenkins projects?

Some time ago I published a post in which I explain how you can create credentials in Jenkins. It’s very important topic because there are several ways to manage the credentials, but not all of them are safe. I showed you in my post how to use Credential Plugin, and it’s enough for adding, storing and managing secrets, but not for using them in the builds. I think this topic should have a separate discussion, so I decided to make this post. So now you will learn how to use credentials in Jenkins projects! Short reminder One can add and manage Continue reading

vCloud HCL generator for Terraform

vCloud Director is one of the VMware products which help service providers with the public cloud delivery. As with the most VMware products, developers can communicate with it by API. So if something has API, it may have its own Terraform Provider! To be honest, I use vSphere Provider more than vCloud, but sometimes it’s better to use Terraform instead of using GUI or even PowerCLI. Of course, I don’t save the states of my infrastructure, because I don’t need to destroy or change it later, but I can save my time during the creation of new infrastructure. One of Continue reading

Separating Providers from the Terraform core

Terraform is my favorite tool for infrastructure building and managing. Although I use it mostly for the vSphere and vCloud Director environments (you can see more here), I know that I am far from making full use of it. Hashicorp project is growing so fast, there are some problems with scalability. Moreover, as Hashicorp wrote on their blog, Providers maintaining is quite hard because of their number. Hence decision about separating Providers from the Terraform core. This change will be applied in the 0.10.0-beta1 version of Terraform. This move will help developers not associated with the Hashicorp. No more conflicts with Continue reading

How to create credentials in Jenkins

Every system, application or another solution has some authentication providers. Sometimes it’s a local password storage, sometimes administrator can implement AD (or another LDAP), Radius, OAuth etc. Nobody can reach the system without username and password, private key, secret token etc. Words below are so obvious that I feel stupid for writing them. But anyway it’s a very important entry into my today post – how to create credentials in Jenkins. Because even Jenkins has to use credentials in its projects and builds. If you have ever used Jenkins, you probably know that you can pass username and password as a Continue reading

Using Terraform to deploy VM with an additional disk in vSphere

Some time ago I wrote a post, which explains how to deploy VM in vSphere using a Terraform. It’s something like a universal Terraform configuration for vSphere. You don’t need to manually specify any variable. The most vars are based on the variable mappings. Today I want to show you another code – this time you will see how to create a VM with an additional disk. In theory, it doesn’t need many changes, but I am not confined just to create a disk. I also want to make it usable by the Operating System and ensure that disk will Continue reading

Ansible MySQL role – creating databases and users

When you have only one local database server dedicated to your application, there are no problems with creating a database and a user. But the problem appears when we want to create many databases and users manually. Of course we can create a bash script and run it everytime we want to create a new database and user, but there is another and easier way. This way is called Ansible. Ansible is a really helpful and excellent tool for automation. I have tried to use Ansible anytime since I have heard about it the first time. Some time ago I Continue reading

Terraform 0.9.0 was released

It has been two weeks since Terraform 0.9.0-beta2 was released, and now we can enjoy a new stable version! It’s a pleasure to say that 3 hours ago Hashicorp has released Terraform 0.9.0. In the current version you can find changes I mentioned in the previous post and of course much more! I think that the most important things in the newest release are Remote Backends and State Locking. Remote Backend replaces remote state and it changes architecture of tracking the state of your infrastructure. You can find more information in the #11286 Pull Request and in official Terraform documentation. There is a Continue reading