Logo TIB AV-Portal Logo TIB AV-Portal

Building development environments using Vagrant

Video in TIB AV-Portal: Building development environments using Vagrant

Formal Metadata

Building development environments using Vagrant
Title of Series
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Open Source Geospatial Foundation (OSGeo)
Production Year
Production Place
Portland, Oregon, United States of America

Content Metadata

Subject Area
Building development environments using VagrantDuring Oskari.org development we noticed releases usually where delayed due to environment differences. Our desktop and server environments are quite different. We believe there should be no differences between the production and development environments. In our research we discovered Vagrant, which utilizes Virtualbox for creating virtual environments. It was a perfect solution and we wondered into the world of DevOps. We noticed our lack of automation and began our search for a good Configuration Management tool. Our research showed many promising alternatives and we ended up choosing Ansible. Armed with Vagrant and Ansible we began to automate our development environment in a reproducible way. This talk is about our journey into DevOps and why you should join us!
Keywords DevOps Vagrant Virtualbox Configuration Management Ansible
Computer animation
Slides presentation Right
Computer animation operations
Computer animation Software Open Source time projects organization
point server Development time The list bits events production evaluation Computer animation ring Software system environment case testing platforms Windows
point Transformers time graded sets fields versions Computer animation system case box life Free virtual reality source
script curve Actions shift server files time NET logical consistency effects Transactional configuration management information computational versions alternatives Computer animation different case shell ensemble Security modes
default building Computer animation Software system different time box localization
point script server states time projects acidication print production image processes Computer animation system different topology box testing platforms
server Development time moment events scalability production Migrations image loop processes Computer animation system testing
server functionality time machine similar space open subsets Dat production versions system Lecture/Conference different operating system box level testing convexity Security plugin script enterprises distribution shift Development Symbolic Computer animation environment Software case Query ensemble Games virtual reality Windows
point server building files sheaf machine sets Part computational versions web mathematics specific system Lecture/Conference testing tasks modules relation key Development Databases lines variables applications Symbolic category words Computer animation Software environment case repository password Right Board sort
else it but let's start with being responsive the and 2 week like that done the we can closed at and then that start the
presentation the and at the so
welcome everybody this is not the slide were supposed to she to all right
let's like this I'm a little bit nervous if you haven't noticed it yet and this is not going to know of who
the uh but that's
OK all right this the all right we're good to go my name is makeable American from Finland I work for a company called I C 5 and this is a talk about our journey into using Dev Ops so I've been working on
on this project was going and it's an open source project and basically it uses a lot of open source software and and it's coordinated by the National Land Survey of Finland and where team of 8 developers and and there's many more organizations that use the same same software and you can check out was created that or to find out more the so now let's go back in
time let's start in January so
a development environment is Windows 7 and given uh a few are a developer you probably know that it's not a very good so uh starting point considering that the servers are usually Linux and that's what we also have we have a Linux servers the and the software we we mainly had at that time was by at did they could and In that case we had the usual staging them on production servers I think most of you know what where this is heading so all of these are a little bit different every environment and because they're a little bit different it was difficult to test in advance so basically you need to know a little bit more about the environment to to make releases and he also usually had to Jingling of it which means it's a little bit painful and in January we were presented with a new new challenge we had to more rings and June platforms but this time only production servers so that means basically we can destined events so we had to figure out something the now we sit down and and come up with with a requirements for this this thing that we want to do environment to be reproducible for testing and for development and and to get everything working as it should and because we don't like to do that manually we wanted to be automated that way we can obtain of remove them the human factor from from the deployment a would be successful every time and on our wish list we also had that uh the tools will be easy to learn and an easy to use so we start with doing an
evaluation the reproducible server
environments well that's miscue virtualization that's uh pretty pretty common these days and we said to to check out the different options and the most common 1 sees uh the and and the virtual books and well the the free version of of fusion it doesn't have so many built-in uh while a command line interface that you can do a lot of stuff with so they only have 10 as it really is is a virtual boxes at this time this you pay for them In the field where version in that case you can use the
tool called vagrant so we we found vagrant have it uses virtual walks air uh has somebody in notice used vagrant gradient but I really like it a it makes life easier and that is the kind of thing which they grant is that you write a single command vagrant up and then you have it up and running so if you to virtual box and you couldn't quite get it working and transparent it will make your life easier and it comes with a set of promises like sink Fuller's it makes the data as transformations easier it doesn't always work in my experience but most of the time it works and you can use provisioning to get your our virtual environment to that specific point the and that's the topic foreign it's slide so
we we checked out the provisioning of alternatives in Vagrant it was version 1 . 4 at the time so we had 4 different alternatives and shell scripts Chef Puppet and nonthermal well I don't know how much you are familiar with these tools but Shiffrin puppet are quite old have well show scripts are even older that M but the shell scripts well because they're like been there always there they're easy to right but in our experience they were a bit unreliable and and it's not important unless you specifically take actions to make them uh important and that means that you cannot treat run it several times after that and uh after 8 h so basically if you run a shell script then moves something around it will be moved and you kind of need to to notice that Haynes I hate has already been moved to the place where it's supposed to be moved a shift from pop but they are built in a way that they can can notice for the belief something has been moved already and but they have uh some issues which in our case was that they're difficult effect the and where we checked out possible we were pleasantly surprised that it was easy to write and and simple to use so we took that and the side of
the values and promises of ensemble Estrella reliable has low learning curve and it's easy to install it's consistent and secure the consistency comes from from the weight of the company configuration files are below the it's just another mouse market language young and it's quite easy to read and understand what's going on even if you never seen it before Hey secure because it uses SSH for for the transactions and it has a nice feature of both push and pull mode so Bush means that you have a server a master and then you push it into the target computer the things you want to get installed and pull mode means that you have you go into the um Torre computer and you pull it from some so sense repository what you want to have installed to so let's go
back in time again we have we
started out building environments so that we can use vagrant we is back I O to build their their environments because we wanted it to have uh finished locale and it was based in into to the next 1 was gen to box and then we built on the sentence books because uh if you remember where offerings are what were supposed to target gentlemen and centers we started out in the winter because of vagrant has has said this default box based on a buddhist to so just to get to learn the tool we did that 1st the the while we did this we we learned that are set up it's kind of complicated the the we have a lot of the stack contains a lot of different pieces of software and this is where we're the fact that we had to automate it made it very very kind of clear that was artist if that needs to be done to to get everything working and of course we noticed we have some missing documentation which has been fixed up the
so acid is and we're
in a situation we have 1 script that is able to do the whole installation process for tree platforms which is kind and nice uh but every platform has its own challenges here a little bit different and then unfortunately are virtualized environments are still different from production that's basically because um when we have it in Amazon we have no idea how they built their images and we haven't been able to to extract images from Amazon and put it into a virtual box the and these 3 projects are are rapidly evolving so sometimes they break and we need to to fix that along the lines but we're still seeing the benefits of this we we know the state of the service which is nice because it's easier to improve but we were able to print bear and test before we went to production so our our deployments were or very nice to do that we just ran a command and there was and I have to say we almost have saved time and when doing deployments we will once we get more more environments and do more than more automation but at this point we're we're kind of breaking even and what's
next and within I evaluate doctors
the it's is promising that that we can make an image and then insert it in any uh environment we want to have so the server can run have sent us it can Red Hat Inc and endungeoned to it can run a loop to it doesn't really matter had darker will abstracted away and and we can kind of just have to focus on on creating our our own stack and and billion events and use that for the development and the testing and deployment the production of then we need to figure out how to to form allows are migration processes and practices and uh 1 once we have done this we can start to to measure and improve our servers scalability and of course to to testing it seems like I've been talking way way faster than I originally assumed so there's a lot of time for questions from if you have any you and this gap in just a moment the so we started looking
into using vagrant and of I'm not sure which exact version of the young were were running but it is the paid you know whatever enterprise version and actually I kind of got the impression that it was of available with the you know like the free via more player for vagrant but we seem to have had a wall so security said actually that works with the Enterprise version under the I guess but you need to the uh the plug-in the new have their and plug in for American so that's kind of the Open Software you can get it working but if you want to use and fusion then you need to to pay for a plug in for vagrant and then you then you're all set OK right that's the brick wall that we now and then actually the the follow question uh practical and related questions we have a convex Linux Windows environment and I don't know if you could speak to what portions of these tools work well with the Windows uh well if you know and I it's uh unfortunately do add these don't for a query well a windows at all and and symbol use is very low level of Linux function calls and so on symbol it won't work on Windows and what you can do is that you can that um fire up on a Linux box in the world in your case fusion or the in and then use dat faster kind of orchestrating machine so you can use PAM symbol from your virtualized environment to fire up more virtual environments with the have never used bigram for which problem someone here to learn on but it wasn't quite clear to me is that on your articulated that you're server environment was like space but then you mentioned it was going to shovel the versions of the operating system but you have to support production and then use you will you you brought and they did vagrant wrong on those operating systems no variant is running on our my development box our computer so that I can simulate their production environments so basically what I did is I have a local version of the server environment so that I can run the testing using variant and and and get the environment across the mentioned using a 1 to and I wasn't sure if a bond to was you put about 2 and a virtual box and bigrams mention virtual box running about 2 I got that such but then you refer to Santo us and Chengdu and yes I wasn't confused about yes we are staying with them to ordered to switch from 1 to uh yes I switch from bonded to gentiles and I scientists centers and my script is kind of I where over which the distribution it's going to install so it can advance on Jan to accuse emerge commands and on Ubuntu up get and and incentive said yummy stuff text the I do care elaborated be more on the differences between chef and answer bore where and why you did laughter is more is easier to use the shaft is sought to use on just curious about the game differently I haven't used chef I had the have to say that uh and in advance that what I did was I was checking out the examples of how to use shift so if our chef receipt was like this that's similar ensemble script days that law and compare it to puppet which was like this long still only the same so uh it's more a verbose and and it's quite easy to use because we had time I can try to show you yeah playbook what's which is de the name for 4
days in time symbol there was want
let's see if we can get like so so basically what we're telling is that hey but we have defined something called web servers bitch that's the target for his uh these are variables of this is so remote user and the are test assisting interesting part because this is where everything happens in this case we have a name key and the value will induce case describe what will happen and um here we have the module 9 of which there exists already in in on symbol which is the young the the software and what we are telling here is that there's a package called uh age to the PD a passion in other words and we want to install the latest version of it and well that's what this this task is doing next task it's the next minus line we practical option file the and if it has changed then we notified that hey we need to restart especially and if it doesn't change it won't modify it so it won't be restarted and these modifications are stacked up so if you have a lot of changes then it will only once we start and restart will happen after the playbooks have and well the Norfolk the cations some our prior mapped to handlers which is basically just that a service called K you need to restart the service and here's the 3rd task which is to ensure its upper running so this quite quite understandable like the the 1st section about of variables right properties right not did be now they are defined from the hard coded there that they be defined in a more flexible way like reading them for produce 5 formerly the lady from 1 all at because we had some issues which have been delivered region of these uh database I'm not so sure uh but a separate file yes that's possible but if you have some of them of files that are our sensitive like password so whatever i you can use this harnessable Walt tool and you encrypt at and it will be decrypted when it's uh fetch from repository all how you ever feel to to get the data that the settings into the heart of the computer the and so we were in development shoppers reviews the sulfur and 1 of the things so we've started using bigger and all 1 of the 2 nice things is for describing a machine environments to our system treatise words words scan upon the way to know what sort whatever so at this point just passed on a vagrant interval relations files get back on of the other nice thing is of being able to on board of new developers specifications really really that list of where's previously they'd go through documents to the presence of at this point you can have development environments with the applications that the building on the system of the same it on octave in products that of within the 2 so that's really has depending of course on how fast they can download them there books but right itself and so the nice thing about is that now we we standardize on a centralist don't worry everything and then we have our internal give us through the stuff the so thanks for coming