Ansible – Automate Application Deployment

Back to Blog
Ansible - Automate Application Deployment

Ansible – Automate Application Deployment

What is Ansible – Automate Application Deployment?

Basically, Ansible is an automated system which made for you it needs it is a system that has all capability to handle IT functions it is all in one.

Basically, ansible Designed for multi-tier deployments since starting, Ansible Handel your IT infrastructure by describing how all of your systems interrelate, rather than just managing one system at a time.

It uses no agents and no additional custom security infrastructure, so it’s easy to deploy – and most importantly, it uses a very simple language (YAML, in the form of Ansible, is like a playbook, yes ansible are playbooks that allow you to describe your automation jobs in a way that approaches plain English.

Manage Your Inventory In Simple Text Files

By default, Ansible represents what machines it manages using a very simple INI file that puts all of your managed machines in groups of your own choosing.

In ansible occupied servers to add new machines, there is no additional SSL signing server involved, so there’s never any hassle deciding why a particular machine didn’t get linked up due to obscure NTP or DNS issues.

If there’s another source of truth in your infrastructure, Ansible can also the plugin to that, such as drawing inventory, group, and variable information from sources like EC2, Rackspace, OpenStack, Jenkins, Docker and more.

What are deployment scripts for build-deploy-test workflows?

To deploy your application with a build-deploy-test workflow, you must create deployment scripts and add them to your build. Basically, Deployment scripts are files that copy your build to the machines in your lab environment. If your build includes an installation package, you can also use your deployment scripts to run the installation package.

It’s so easy but when you create your build-deploy-test workflow, you add commands to the workflow that run your deployment scripts.

When you run your workflow, the build controller runs those commands in the working directory on the specified machines in your lab environment.

How to create a build-deploy-test workflow?

These sections discuss how to create and use deployment scripts with your build-deploy-test workflow:

  • Preparing Build Files for Deployment
  • Writing Your Deployment Scripts
  • Building Your Deployment Scripts
  • Setting up Working Directories
  • Adding Deployment Scripts to Your Workflow

Requirements

  • Visual Studio Enterprise, Visual Studio Test Professional

Writing your deployment scripts

These are the most common tasks carried out by deployment scripts:

  • Get the build path on your build controller. You can send this to your deployment script as a command argument.
  • Specify your deployment path.
  • Create your deployment directory. You can also do this manually, instead of in your deployment script. Right now maybe you are using pre-deployment environment snapshot with your workflow, you just need to create the directory on the virtual machines in your snapshot.
  • Copy your deployment package from the build path to your deployment path.
  • Run the deployment package in your deployment directory.

Building your Deployment Scripts

After you create your ansible playbook’s deployment scripts, you must check them into version control, and then configure them so that they are copied to your build output.

To build your deployment scripts, you must first make sure that they are stored under your Visual Studio project, and not just in your solution.

You can do this in Visual Studio by selecting your deployment script in Solution Explorer, and then under Properties, changing Copy Output Directory to Copy always.

Adding Deployment Scripts to your Workflow

Add Windows shell commands to your build-deploy-test workflow to deploy your application to your lab environment.

If you are using deployment scripts, the commands must copy your deployment scripts from your build controller to the working directory of the target machines, and then run the deployment scripts.

Unless for simple application installations that only involve copying a few files to the working directory, you can use shell commands in your workflow without specifying external deployment scripts.

If you want to add a command that is run from a window prompt, such as media or runs a batch file, you must begin the command by using cmd /c. For example, the command cmd /c $(BuildLocation)\copyexe $(BuildLocation) where the copy is the batch file copyexe.bat, copies an executable to a local directory in a virtual machine.

So how can I use Ansible?

In the simplest form, you need three components: an Ansible Server, Remote Hosts, and a playbook.

When you process your playbook ansible (the set of command that update your cloud instances), your Ansible server will need to connect with each instance.

Setting up the remote connection is as easy as setting up a password-less login with SSH keys between your Ansible server and your remote hosts.

If you have a use case where you cannot (or will not) use SSH keys, you can still use passwords, and either has Ansible prompt you for passwords at runtime or store them in a file — although this is not recommended for security or, honestly, convenience.

Ansible with Deployment Scripts

The work you want to execute are defined separately from the types of computer you want to configure, you must provide Ansible with a standalone inventory file of hostnames.

An inventory file is a simple text file that lists the IP address or hostnames of the servers where you’re deploying code

Clearly, this software system lets you use one playbook to manage different roles. That means you can, in your inventory, designate different servers into groups like web servers, or databases.

In your playbook, you can specify plays to be run by your different groups, and deploy everything in a single stroke.

Ansible also works with Windows. For this, you will definitely need a Linux or Mac machine to use as an Ansible server, but Windows computers can be managed with Ansible.

You can dynamically generate your hosts’ file

There is a command that generates a standard file structure. For non-trivial deployments, you can separate the sections of your Ansible playbook into separate text files. The command “ansible-galaxy initname_of_directory” generates the following file structure:

Ansible is a great choice for automating deployments and executing commands on any number of servers. After you write a few playbooks, you get a feel-good feel for the tool and have a solid go-to solution for deployment and orchestration.

Some Important Links:

TopicsLink URL
How Ansible Workshttps://www.ansible.com/overview/how-ansible-works
Infrastructure Automation with Ansiblehttps://www.ansible.com/integrations/infrastructure
Ansible – Wikihttps://en.wikipedia.org/wiki/Ansible_(software)
Ansible for DevOpshttps://www.ansible.com/overview/devops
Summary
Ansible - Automate Application Deployment
Article Name
Ansible - Automate Application Deployment
Description
Ansible - Automate Application Deployment, make your application continuous deployment (CD), continuous integration (CI) using Ansible and Docker, automated servers and deployments with Ansible and Jenkins, Ansible Jenkins Configuration, Deploy PHP Application using Ansible on AWS, Integrate Git CI with Ansible.
Author
Publisher Name
Ezeelive Technologies
Publisher Logo

Share this post

Comment (1)

  • MahipalSinh Rana Reply

    It’s easy to understand, As for newbie in automation application deployment, it found really good and much-needed details for me. Thanks for sharing.

    April 20, 2018 at 3:48 pm

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back to Blog