In Agile age, can't wait for environment’s (Development,
Test, SIT and Pre-Prod and Prod) in place for start the development and configuration. What we need, just single windows system, where we can start
provisioning with below tools and technologies. This will help more in Continues Development CD, Continues Integration
CI and Continues Delivery CD.
![]() |
Ansible centos virtualbox vagrant and provision |
Let’s discussed how it will possible:
Pre-quest:
Windows 7 OS 64
Install the Oracle VM VirtualBox or any VM more
Install Vagrant more
Download Centos box more
Install ansible
Install Git Bash more
Open the Git Base
Windows Start > All Programs > Git > Git Base
Welcome to Git (version 1.9.5-preview20150319)
Run 'git help <command>' to display help for specific
commands.
Crete the directory vagrant-ansible-centos under c:\
e.g. c:\vagrant-ansible-centos
c:\vagrant-ansible-centos
- provision.sh
- Vagrantfile
- centos65-x86_64-20140116.box
- etc
- ansible
- web.yml
- site.yml
- roles
- git
- tasks
- main.yml
- tar
- tasks
- main.yml
- zip
- tasks
- main.yml
- inventory
- dev
Pest the all files under c:\vagrant-ansible-centos
1. Vagrantfile (no any extension)
#C:\vagrant-ansible-centos\Vagrantfile
# Vagrantfile Details
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos6"
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "5000", "--cpus", "2"]
end
config.vm.synced_folder ".", "/vagrant-ansible-centos"
end
2. provision.sh
#C:\vagrant-ansible-centos\provision.sh
cp -rf /vagrant-ansible-centos/inventory /tmp
chmod -x /tmp/inventory/*
sudo ansible-playbook -vvvv -i /tmp/inventory/$1 /vagrant-ansible-centos/etc/ansible/site.yml --extra-vars 'proxy_host="proxy_host" proxy_port="80" proxy_username="tutorialbyexample" proxy_password="password" proxy_required=true'
#sudo ansible-playbook -vvvv -i /tmp/inventory/$1 /vagrant-ansible-centos/etc/ansible/site.yml
3. dev (no extensions)
#C:\vagrant-ansible-centos\inventory
local ansible_ssh_port=2200 ansible_ssh_host=127.0.0.1 ansible_connection=local
[web-servers]
local
4. web.yml
#C:\vagrant-ansible-centos\etc\ansible\web.yml
---
- hosts: web-servers
remote_user: root
sudo: yes
roles:
- zip
- tar
- git
5. site.yml
#C:\vagrant-ansible-centos\etc\ansible\site.yml
---
- include: web.yml
6. main.yml (this is for git)
#C:\vagrant-ansible-centos\etc\ansible\roles\git\tasks\main.yml
---
- name: Install Git
yum: name={{ item }} state=present
with_items:
- git
- git-svn
7. main.yml (this is for tar)
#C:\vagrant-ansible-centos\etc\ansible\roles\tar\tasks\main.yml
---
- name: Install tar
yum: name=tar state=present
8. main.yml (this is for zip)
#C:\vagrant-ansible-centos\etc\ansible\roles\zip\tasks\main.yml
---
- name: Install zip/unzip util
yum: name={{ item }} state=present
with_items:
- "zip"
- "unzip"
Need to switch our base tool to vagrant-ansible-centos directory
$ cd C:\vagrant-ansible-centos
$ pwd
/c/vagrant-ansible-centos
$ ls -tlr
centos65-x86_64-20140116.box
inventory
etc
provision.sh
Vagrantfile
Note: assuming centos65-x86_64-20140116.box has been downloaded under c:\vagrant-ansible-centos
$ vagrant box add
centos6 centos65-x86_64-20140116.box
Downloading or copying the box...
Extracting box...ate: 2005k/s, Estimated time remaining:
--:--:--)
Successfully added box 'centos6' with provider 'virtualbox'!
Note: You will experiences new folder created under /c/vagrant-ansible-centos
with name .vagrant
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'centos6'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Fixed port collision for 22 => 2222. Now on
port 2200.
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on
configuration...
[default] Forwarding ports...
[default] -- 22 => 2200 (adapter 1)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few
minutes...
[default] Machine booted and ready!
[default] Mounting shared folders...
[default] -- /vagrant
[default] -- /vagrant-ansible-centos
[default] Configuring proxy environment variables...
[default] Configuring proxy for Yum...
Alternatively, ssh into localhost:2200 or 2222 what ever printed on above
using private key c/vagrant-ansible-centos\.vagrant\machines\default\virtualbox\private_key
$ vagrant ssh
[vagrant@vagrant-centos65 ~]$ pwd
/home/vagrant
[vagrant@vagrant-centos65 ~]$ ls -tlr
total 0
[vagrant@vagrant-centos65 ~]$ cd /vagrant-ansible-centos/
[vagrant@vagrant-centos65 vagrant-ansible-centos]$ ls -tlr
centos65-x86_64-20140116.box
inventory
etc
provision.sh
Vagrantfile
All this files will mount in /vagrant-ansible-centos/ as mentioned in Vagrent file.
Install the Ansible
[vagrant@vagrant-centos65
vagrant-ansible-centos]$ sudo yum install ansible
Loaded plugins: fastestmirror, versionlock
Determining fastest mirrors
epel/metalink
* base:
centos.openitc.uk
* epel:
epel.besthosting.ua
* extras:
centos.mirroring.pulsant.co.uk
* updates:
centos.serverspace.co.uk
...
..
Complete!
Verify the Ansible
[vagrant@vagrant-centos65
vagrant-ansible-centos]$ ansible --version
ansible 1.9.2
configured module
search path = None
Provision it, with provision.sh script along with Ansible
[vagrant@vagrant-centos65
vagrant-ansible-centos]$ ./provision.sh dev
PLAY [web-servers] ************************************************************
GATHERING FACTS
***************************************************************
ok: [local]
TASK: [zip | Install zip/unzip util]
******************************************
<127.0.0.1> REMOTE_MODULE yum name=zip,unzip
state=present
TASK: [tar | Install tar]
*****************************************************
<127.0.0.1> REMOTE_MODULE yum name=tar state=present
ok: [local] => {"changed": false,
"msg": "", "rc": 0, "results":
["tar-1.23-11.el6.x86_64 providing tar is already installed"]}
TASK: [git | Install Git]
*****************************************************
<127.0.0.1> REMOTE_MODULE yum name=git,git-svn
state=present
PLAY RECAP ********************************************************************
local
: ok=4 changed=2 unreachable=0 failed=0
[vagrant@vagrant-centos65 vagrant-ansible-centos]$
Verify the provision software, e.g. git, tar and zip
[vagrant@vagrant-centos65
vagrant-ansible-centos]$ git --version
git version 1.7.1
[vagrant@vagrant-centos65
vagrant-ansible-centos]$ tar --version
tar (GNU tar) 1.23
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and
redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
[vagrant@vagrant-centos65
vagrant-ansible-centos]$ zip --version
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"'
for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon. Please send bug reports to
the authors using the web page at www.info-zip.org; see
README for details.
Latest sources and executables are at
ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other
sites.
Compiled with gcc 4.4.4 20100525 (Red Hat 4.4.4-5) for Unix
(Linux ELF) on Nov 11 2010.
Zip special compilation options:
USE_EF_UT_TIME (store
Universal Time)
SYMLINK_SUPPORT (symbolic
links supported)
LARGE_FILE_SUPPORT (can read and
write large files on file system)
ZIP64_SUPPORT (use Zip64 to store large files in
archives)
UNICODE_SUPPORT (store and
read UTF-8 Unicode paths)
STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)
UIDGID_NOT_16BIT (old Unix
16-bit UID/GID extra field not used)
[encryption,
version 2.91 of 05 Jan 2007] (modified for Zip 3)
Encryption notice:
The encryption
code of this program is not copyrighted and is
put in the
public domain. It was originally written
in Europe
and, to the
best of our knowledge, can be freely distributed
in both source
and object forms from any country, including
the USA under
License Exception TSU of the U.S. Export
Administration
Regulations (section 740.13(e)) of 6 June 2002.
Zip environment options:
ZIP: [none]
ZIPOPT: [none]
[vagrant@vagrant-centos65 vagrant-ansible-centos]$
Is not it simple? For real implementation only we have to change the actual IP address of web server.
C:\vagrant-ansible-centos\inventory\dev
local ansible_ssh_port=2200 ansible_ssh_host=127.0.0.1 ansible_connection=local
[web-servers]
local
Note: instead of local need to change the actual IP address and it will work for you.
Feel free put your point of view if any. Happy learning and implementation!!!
Reference from:
Truly a very good article on future technology. Thanks for discussing this, I love to learn more about this topic.
ReplyDeleteDevOps Training in Chennai
DevOps course in Chennai
AWS Training in Chennai
AWS Training in Velachery
Cloud Computing Courses in Chennai
RPA course in Chennai
DevOps Training in OMR
DevOps Training in Chennai
IEEE Final Year projects Project Centers in Chennai are consistently sought after. Final Year Students Projects take a shot at them to improve their aptitudes, while specialists like the enjoyment in interfering with innovation. For experts, it's an alternate ball game through and through. Smaller than expected IEEE Final Year project centers ground for all fragments of CSE & IT engineers hoping to assemble. Final Year Projects for CSE It gives you tips and rules that is progressively critical to consider while choosing any final year project point.
DeleteSpring Framework has already made serious inroads as an integrated technology stack for building user-facing applications. Spring Framework Corporate TRaining the authors explore the idea of using Java in Big Data platforms.
Specifically, Spring Framework provides various tasks are geared around preparing data for further analysis and visualization. Spring Training in Chennai
The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training
Great Article!!! thanks for sharing your ideas and thoughts with us.
ReplyDeleteJava Training in Chennai
ReactJS Training in Chennai
Best CCNA Training Institute in Chennai
ccna certification in Chennai
CCNA Training in Chennai
This blog is unique from all others. Thanks for sharing this content in an excellent way. Waiting for more updates.
ReplyDeleteIELTS Coaching in Anna Nagar
IELTS Coaching in Adyar
IELTS Coaching in Porur
IELTS Coaching in Chennai
Spoken English Classes in Chennai
Best Spoken English Classes in Chennai
Spoken English Class in Chennai
Thanks for sharing this valuable information to our vision. You have posted a worthy blog keep sharing.
ReplyDeleteReactJS Training in Chennai
ReactJS Training
ReactJS course
Ethical Hacking Course in Chennai
PHP Training in Chennai
gst classes in chennai
Angularjs Training in Chennai
Thanks for sharing such a most informative blog.... Waiting for the new updates...
ReplyDeleteSoftware Testing Course in Coimbatore
Software testing Training in coimbatore
best software testing training institute in coimbatore
software testing course in coimbatore with placement
Java Training in Bangalore
Java Training Institutes in Bangalore
AWS Training in Bangalore
data analytics courses in bangalore
Android Training in Coimbatore
ReplyDeleteGreat work...! This article is very informative and very interesting. This is much helpful to gain my knowledge, please keep posting...
Corporate Training in Chennai
Corporate Training institute in Chennai
Excel Training in Chennai
Embedded System Course Chennai
Oracle DBA Training in Chennai
Linux Training in Chennai
Power BI Training in Chennai
Oracle Training in Chennai
Primavera Training in Chennai
Unix Training in Chennai
Really informative blog for all people. Thanks for sharing it.
ReplyDeleteSpoken English Classes in Chennai
Spoken English Course in Chennai
german classes
Best IELTS Coaching in Chennai
learn Japanese in Chennai
TOEFL Coaching Centres in Chennai
Spoken English Classes in Anna Nagar
Spoken English Classes in Tnagar
Pretty accessible tutorial, nice!
ReplyDeleteAmazing tutorial on centos virtualbox vagrant. If you also looking for to download windows 7 ultimate 32/64 Bit then it is very easy to use.
ReplyDelete