Failover clustering originated as a technology that was designed to protect mission-critical applications such as Microsoft SQL Server and Microsoft Exchange, but since that time failover clustering has evolved into a high availability platform for a number of different Windows services and applications. Failover clustering is part of the foundation for Dynamic Datacenter and technologies such as live migration. With Server 2012 and the improvements in the new Server Message Block (SMB) 3.0 protocol, failover clustering has been further expanded to enable continuously available file shares. 


Requirements (What we used in our Environment)


  • Windows Server 2012 R2
  • 64 Gb of RAM
  • Intel VT or AMD – V Supported CPU
  • 2 Separate servers for Cluster nodes.
  • .Net Framework 3.5
  • MSDTC Server Role
  • Clustering Roles for windows
  • SAN Storage for Shared Disks
  • Directory Server (AD) for centralized Authentication and Time Synchronization.
  • iSCSI ports to be opened between hosts and SAN Device.
  • 1 / 10 Gigabit Ethernet.
  • All networks should be Isolated like storage, Heartbeat etc.
  • Drivers and firmware version should be same in all nodes.



OS Configuration

  • Install Windows server 2012 R2 Standard Edition with 100 Gb of disk space on root Drive available on Both nodes.
  • Prerequisites Configuration


    • Install Failover Clustering feature, .Net Framework 3.5 and MSDTC Application Server roles.
    • Rename Both server nodes, give IP to servers to communicate with SAN, DC and configure DNS.
    • Join Nodes to Active Directory and validate computer name via nslookup.
    • Now configure iSCSI LUNs at your storage device end.
    • Connect to the NAS iSCSI storage
      The iSCSI targets, Quorum and Data, should be added.
      Click “Tools” and choose “iSCSI Initiator”.


    • Choose “Discovery” and click “Discover Portal…”. Enter the NAS IP address ( and click “OK”. Go back to “Targets”, and four iSCSI targets will be inactive. Select them and click “Connect”. When they are connected, click “OK”.




    • Right click on “Start” and select “Disk Management”. The Quorum and Data iSCSI targets will be listed.


    • Right click on the disk, select “Online”, and then click “OK”.






    • Format Both Quorum and Data disks.
    • For another node Instead of formatting the disks (Quorum and Data) again, you just need to make them online.




  • Windows Failover Clustering Configuration


    • Click “Tools” and select “Failover Cluster Manager” in the Server Manager.



    • Validate the Failover Clustering
      Click “Validate Configuration” and click “Next”.


    • Enter the Name or servers



    • Check both Cluster Disks (Quorum and Data) and click “Next”.




    • After validating the failover clustering, the system will provide a report including all parameter checks.



    • Choose “Nodes” in the category and you can observe the status of the Windows Servers.


  • Create a Clustered MSDTC

Since Windows 2008, we can have more than one instance of MS DTC in a server/cluster. So, for clustered SQL Server installations is a best practice to have a Role exclusively for the DTC and a dedicated DTC for each SQL Server Role.

As documented per Microsoft, the SQL Server follow this path to choose the MS DTC instance to use:

  • Use MS DTC installed to the local group, else
    • Use the mapped instance of MS DTC, else
      • Use the cluster’s default instance of MS DTC, else
        • Use the local machine’s installed instance of MS DTC


  • To configure a DTC in cluster, we will need a disk and a hostname.

To configure a Role exclusively for the DTC, follow the steps

Right-click on Roles and pick the “Configure Role” option.




  • A new window will open. Click “next”.


  • Choose the option “Distributed Transaction Coordinator (DTC)” from the list. Click  “Next”.





  • Fill the hostname in the “Name” field and the IP in the “Network” section. Click “Next”.


  • Pick up the disk to be used. Click “Next”.


  • Review the configurations and click “Next”.


  • The installation will run and in the last step you will see a report. Click “Finish”.





  • Now you will be able to see a new Role created in the cluster, with all the indicated resources.


  • To add a DTC resource into the SQL Server Role, follow the steps:
  • Right-click the Role, go to “Add Resource”->”More Resources” -> “Distributed Transaction Coordinator”.









    • The resource will be created in the selected Role, now we need to configure it. Right-click the “New Distributed Transaction Coordinator” and click on “Properties”.




  • As referred early on this article, the DTC needs a hostname and a disk to work. On dependencies you can pick up those items as shown, and click “ok”.


  • Now, let’s bring it online.


  • Create SQL Server Cluster.


    • Now we are ready to begin SQL Server Clustering installation














Before clicking Next, click on the Data Directories tab.











Once SQL is installed on the first node, you will then need to run the installation on the second node.













  • Verify the installation and Do the cluster validation.
    • First Open Failover Cluster manager and Click on Roles , You will see SQLServer Instance Roles is running , click on that and verify all resources are online.




    • Right click on SQLServer Role choose move and select another node to test clustering.






    • Select Node and Click on OK Button, Now SQL Server Instance should be transfer to another node.




    • Now click on Cluster and choose Validate cluster.



    • Click Next choose all storage to test.





    • Click on Next and upon finish all tests you will see report for all test




Puppet Implementation Manual

  1. Introduction

    Puppet is an IT automation solution that gives you the power to easily automate repetitive tasks, quickly deploy critical applications, and proactively manage infrastructure, both on premises and in the cloud. Puppet is used by a wide and expanding community of sysadmins to automate provisioning, patching and configuration of operating systems, devices, and application components across the entire data center — including physical and virtual machines, running on premises or in the cloud


    Foreman is an open source application that can be used to manage, provision, configure, and monitor a single or group of servers. Foreman smart proxy architecture allows you to automate repetitive tasks, quickly deploy applications, proactively manage change using configuration management systems such as Puppet, Chef and Salt. Foreman has an interactive and robust web front-end, API, CLI to manage, provision servers in private or public clouds.


    Using Foreman, we can:

  • Discover, provision and upgrade your IT infrastructure
  • Create and manage instances both in private and public clouds
  • Group your hosts and manage them in bulk, regardless of location
  • Review historical changes for auditing or troubleshooting
  • Extend as needed via a robust plugin architecture
  • Automatically build images (on each platform) per system definition to optimize deployment



  1. Requirements (What we used in our Environment)


  • Ubuntu 14.04.5 LTS (GNU/Linux 3.19.0-25-generic x86_64)
  • Apache/2.4.7
  • Ruby
  • Postgre SQL 9.3.15
  • A recent version of Firefox, Chrome, Opera, etc or IE≥9







  1. OS Configuration
  • Launch VMWare vCenter console to create VM.

  • Give name and location for VM

  • Choose Datastore for VM Location

  • Choose Virtual Machine version.

  • Now choose Operating system as Ubuntu x64 bit

  • Choose number of cpu , memory, network , hardisk etc as per requirement.

  • Attach iso file and start VM for OS Installation.

  • Choose OS Language

  • Choose Keyboard layout

  • Skip the Keyboard detection by choosing No

  • Set Password for user admin account

  • Choose Harddisk layout as LVM and entire harddisk to be used

  • Confirm to Write Changes to harddisk and proceed with partitions.

  • Choose software which you want to be installed along with OS installation, choose openssh so that we can use ssh for remote management.

  • At installation complete screen detach the iso and reboot the server.

  • Connect to server via Putty session for initial configuration of server.

    To edit network setting type command in shell : vi /etc/network/interfaces

    Then save and close the file and restart networking services.

  1. Prerequisites Configuration
  • Before installing Foreman, we need to do some important prerequisites which will help to setup a proper Foreman. These steps needs to be run on Ubuntu. First of all, make sure we have setup a proper FQDN for server for that we have to make DNS entry in DNS server. So that Puppet server will properly resolve the dns name of the server across the network.



  • Next update the repo by typing apt-get update

  1. Puppet Installation with Foreman


  • First we have to add Puppet and foreman repo to our current repo data and add gpg key.

    wget -q http://deb.theforeman.org/pubkey.gpg -O- | apt-key add –

  • For Foreman add like this

    root@hccs-fll-cmgr:~# echo “deb http://deb.theforeman.org/ trusty 1.9” > /etc/apt/sources.list.d/foreman.list

  • Then Install the repo file

    dpkg -i puppetlabs-release-trusty.deb

  • Again refresh repo data

    #apt-get update

  • Install forman Installer

    Apt-get install foreman-installer

  • Again type foreman installer only to begin installation, it will automatically install foreman with puppet server.

  • The Foreman-installer command will start to download and install all necessary softwares to setup a working Foreman environment. After few minutes, you will see a output something like below.
     * Foreman is running at https://hccs-fll-cmgr
     Initial credentials are admin / pKmHDXnRDFnR5xhR
     * Foreman Proxy is running at https://hccs-fll-cmgr:8443
     * Puppetmaster is running at port 8140
     The full log is at /var/log/foreman-installer/foreman-installer.log
  • To Configure Foreman we need to enable “diffs”, which will help us to see configuration file changes from within Foreman’s Reports view.

    To do that, edit /etc/puppet/puppet.conf file:

    vi /etc/puppet/puppet.conf

    Find the following line and change its value to true.

    show_diff = true

    Save and close the file.

    To Access Foreman Web Console, Open up your web browser and navigate to: https://IP-address/ or https://FQDN/.

    The following screen should appear.

    Enter your Foreman credentials.

  • After your successful login you will get the foreman Dashboard.


  1. Configuration of NTP
  • Puppet needs accurate time-keeping, so we will install Puppet NTP module for managing the NTP service first. To do that, run the following command from your Foreman host’s Terminal:

puppet module install -i /etc/puppet/environments/production/modules saz/ntp

Sample Output:

Notice: Preparing to install into /etc/puppet/environments/production/modules ...

Notice: Downloading from https://forgeapi.puppetlabs.com ...

Notice: Installing -- do not interrupt ...


└── saz-ntp (v2.3.2)
  • After installing it, let us add it to Foreman host. Log in to the Foreman Admin console. From the Admin console, go to Configure > Puppet classes.

  • Then Click on Import from hccs-fll-cmgr.mvecloud.com (highlighted in Snap)

  • Select the NTP module that you installed earlier and click Update.

  • After updating the NTP module to the Foreman, you will see something like below. Now, click on the NTP class on the left

  • Then, change to the Smart Class Parameters tab and select the server_list parameter on the left. Tick the Override checkbox and click Submit.

  • Again, go back to the Hosts > All hosts tab and click Edit on the Foreman host.

  • On the Puppet Classes tab, expand the ntp module and click the + icon to add the ntpclass to the host, then click Submit to save the host.

  • After adding the ntp class, you’ll be automatically redirected to the host’s details section. Clicking the YAML button will show you the ntp class and the server_list parameter, as passed to Puppet via the ENC (external node classifier) interface.

  • You will then get yaml window with ntp results.

  • Finally, run the following command on the Foreman host to see the NTP service automatically reconfigured by Puppet and the NTP module.

        puppet agent --test




  1. Installing Puppet Agents
  • In Windows Client machines (Use only compatible version with Puppet Server)

Download puppet agent 3.8.7 from Puppet website and install agent


  • Click Next Accept the Term & Condition, then you will get server name windows type Full FQDN name of puppet server.


  • Click Next again and Finish the installation.

Now go to C:\ProgramData\PuppetLabs\puppet\etc and open puppet.conf file.


  • Add this lines and save the file and restart puppet service from service console.





  • Go to puppet command prompt and type puppet agent –test for certificate request from puppet server.


  • Accept Certificate request from Foreman Web Console , go to Infrastructure then smart proxy, and approve client machines from there.


  • Installation in Ubuntu.
  • Add repo to Ubuntu Server, Install the repo and update the cache.

wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb


  • Install puppet agent by typing “apt-get install puppet” Puppet will then automatically install on Ubuntu system, Check puppet agent version by typing

#Puppet –version


  • Edit /etc/puppet/puppet.conf file and add this lines.


  • Type “puppet agent – – test” for certificate request and approve them from Foreman console and then restart puppet agent by typing

“service puppet start”


In CentOS


  • Add Puppetlabs repository:

rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
  • Update the sources list:

yum update
  • Finally install puppet agent using command:

yum install puppet


  • Edit /etc/puppet/puppet.conf file add servername and runinterval time then restart puppet agent and execute –test command for certificate request.We can also able to sign client certificate from linux terminal, just type Puppet cert list, it will give server name then type Puppet cert sign “servername” to approve.
  1. Troubleshooting and Tips.

  • Communication to puppet server is not working, try –test command with server name

    #puppet agent –server hccs-fll-cmgr –test


  • Version mismatch error, Install proper agent compatible with puppet server.

  • Ruby version mismatch or multiple ruby versions install. Try to switch to proper ruby version.







  1. Migration Procedures for Office365 from On Premises Exchange Server


  1. Create Environment at Office 365 for Migration.
  2. Create Server Environment for Exporting Exchange Database to PST.
  3. Modify MX Records.
  4. Export PSTs.
  5. Configure Outlook and Import PST.
  6. Check Migration Status.



Setup Environment for Office365 Migration from On-premises Exchange

  1. Create Office 365 Account for migration of Exchange Server Mailboxes. If you wish to migrate all mailboxes then you can choose Staged or Cutover migration type.
  2. Sign In to your office 365 Account for adding Domain name, Licenses, Creation of Users and plan Type.


  1. Choose a Plan you wish and add License quantity, during checkout pay Amount by your credit Card or any other preferred method.

  1. Now you can Add your domain name by verifying your ownership, for that Click on Domains at Office 365 Admin Center.
  2. Click on Add Domain and add your domain name, in this point office365 says for verification of Ownership of domain, for that you need to add txt record at your current domain Registrar, after some time you can verify and able to add your domain successfully to Office365.


  1. Now you can add users and groups by Clicking on users and groups link at office 365 admin Center and use your added domain for creation of users.
  2. By Creating Each users Office 365 gives you a temporary password for, note them down all passwords.
  3. After Adding users now we have to create Environment for Exporting data from Exchange server to PST format.



Create Server Environment for Exporting Exchange Database to PST.

  1. For Exporting mailboxes you need a Client machine with 32 bit of OS installed and 32bit of Exchange Management Tools Installed along with outlook 2003 or later.
  2. Also Install IIS Management Console, and make sure machine joined to Domain.
  3. Install Exchange Management tools for 2007 from this link http://www.microsoft.com/en-in/download/details.aspx?id=11876#



  4. Ensure that management console is working fine, connecting to Exchange Infrastructure.
  5. You can test a single small mailbox by exporting data to PST.
  6. For exporting data from Exchange Databases , Fire up Exchange Management Shell


  7. Type at Shell – Get-MailboxStatistics -Server “exmbx01” and press Enter it will show you all mailboxes on given Exchange server.
  8. Now type – Export-Mailbox -Identity “Remco Verhoef” -PSTFolderPath c:\PSTs for exporting data to desired Folder.
  9. Add-MailboxPermission -Identity john -User Admin01 -AccessRights FullAccess
  10. Add-MailboxPermission -Identity Export -User Admin01 -AccessRights FullAccess



Modify MX Records

  1. After successfully perform test Export now we are ready for Changing direction of mailflow to Office365 server.
  2. For that Go to your DNS Registrar Control panel, and change MX Record shown below in figure.



  3. After sometime your mail flow will diverted from your Exchange on Premises to office365 servers.


Exporting PSTs from Exchange On premises

  1. After MX Record got changed, inform all your mail server users about affecting services and don’t use there mails for some time.
  2. Now you have to exports mailboxes to PSTs and import them to office 365 Accounts.
  3. For Exporting single mailbox we can use Exchange management Shell, and powershell command – Export-Mailbox -Identity “User Name” -PSTFolderPath c:\PSTs
  4. For Exporting Entire mailbox database we can use command –

    Get-Mailbox -Database “Redfive\First Storage Group\Mailbox Database” | Export-Mailbox -PSTFolderPath c:\PSTs


Configure Outlook and Import PST.

  1. For Importing data to each new Account of office365 , we have to configure profiles at Outlook and import PSTs and let them sync with office365 for a while.
  2. First Create a Profile by going to Control panel and click on mail where you can find profile tab add a profile name.



  1. By Choosing your desired profile a wizard will open for configuring outlook where you only have to put office 365 User name and password , office 365 Autodiscover functionality will automatically configure your Outlook to use along with office365.




  2. After configuration of Outlook your Outlook opens and you have your first Welcome message from office365


  3. Now click on File and choose Open & Export option from the menu and click on Open Outlook Data File.



  4. Give your PST file path which we export earlier and click on Okay for importing mailbox data to Outlook,


  5. By Importing data from PST your all mails are appeared in outlook and Started Syncing with Office365.




    Check Migration Status.

  6. You can check your migration status as per mailbox by opening Exchange Online in a web browser where you cross check that all mails got synced of not. After verification of each and every folder you can assure that migration is Successful.





There is One another way to migrate mailboxes individually to office 365, for that you need third party software called CodeTwo office365 Migration, Code Two is reputed company and Certified Microsoft Partner where they have several usefull free and paid softwares for simplifying Day to Day Work for Microsoft NetWork Infrastructure.

For more information go to : http://www.codetwo.com



  1. CodeTwo office 365 Migration

Easily migrate from Exchange Server or Google Apps to Office 365



Install CodeTwo office365 migration tools to any of your Domain System or Exchange Server itself.














There is free licensing options Available for Code Two Office365 migration Tool




How to get the license for free?

You can get this software for free by assigning CodeTwo as your Partner of Record in the Office 365 administration panel. Doing so won’t cost you anything, and it won’t have any effect on the services or support you already get from Microsoft. However, as a licensed user of our Office 365 Migration tool you will get full assistance from our technicians while migrating to Office 365, if needed. Our migration experts are there for you to assist during the migration process. If you need any help with moving your mailboxes to Office 365, simply contact us.





Read the quick guide below to find out how to assign CodeTwo as your partner in Office 365.

  Go to the Microsoft Online portal and log in with your administrator’s account.

  Click licensing located in the Office 365 dashboard on the left-hand side.

  You should now see the list of subscriptions you already have. Click on the subscription name you want to assign.

  In the Subscription details, on the right hand side of the panel, click Add at the bottom of the right navigation pane.

  In the pop up window, assign CodeTwo as your Partner by providing CodeTwo Partner ID (2582478). You can verify the assignment by clicking on the Check ID button.

  Click OK to confirm.

  Repeat steps 3-6 for the rest of subscription packs you need the program for.


Important! After you complete the Partner assignment process, you need to let us know by filling in the License Request. The license will be sent to you by email after your request is verified. Note that it may take up to a couple of days until we are able to verify your license request. The length of time depends on how fast Microsoft will pass the necessary information to us.


I am finally succumbing to all the peer pressure to start a #techblog. I have to admit I am a little afraid, so please be kind to me. You are probably groaning right about now…not ANOTHER tech blog!!

There are so many out there, but what can I say I don’t have many talents. Not that I’m a talented guy, but I do enjoy blogging within Technologies. It gives me great joy and the way when I do the same thing and learnt a lot from tech blogs.

Most of you (actually, all of you) don’t know who I am, what is this blog and why I write this blog. That’s why I write this very first blog post.

Who is me?

As a visitor of my site, you probably need to know who runs this site. So within the domain name you already know my name, I’m Prem Prakash from Delhi, India. By profession, I’m a self taught Tech Architect and a self improved blogger and I started blogging in 2009 as my hobby. Also, I wanted to start this blog before several years ago, but some difficulties came across me. I start this blog, because of I love blogging, I love to share my thoughts, my skills to the world.

But please don’t have high expectations…I’m not a giant Tech Guru – just want to throw that out there first thing!  Can’t have you expecting too much!

I hope to share my implementations, home labs configuration, Project experience with real life production environment to all of you. There are so many wonderful blogs that inspire me everyday, and I want to share in all of the creativity!

You can find more cool stuff about me by visiting ‘About‘ page of my blog and also don’t forget to connect with me.

What’s this blog about?

By reading above paragraph, you may already got an idea about this blog. As the name of the blog, this is a tech blog writes about tech tips, home labs technologies testament, production implementation, blogging tips and many more related to those topics. I’ll write those topics with my personal knowledge, experience and after doing a research about the topic.

An open invitation to join my blog!

As this is a tech blog, I should invite you to join my blog! By joining my blog, you’ll make your path to stay updated with best technology related updates, blogging tips and things that will helpful to you to become a better Technology Guy and Tech Blogger.

You can join with my blog through,

Follow us on Twitter
Follow us on Instagram
Like us on Facebook
Contact me here for  Freelancers Services

For now, I’m not going to make this very first blog post very long. Thank you everyone come here and read my first blog post made in here. Your comments and social shout outs are much appreciated.

First post. Done!  🙂