To Create a basic deployment process by using octopus deploy.
“Octopus is the deployment automation server for your entire team, designed to make it easy to orchestrate releases and deploy applications, whether on-premises or in the cloud.” — Octopus Deploy.
Integrating Octopus with TeamCity:
Check my previous blog on how to push the package from TeamCity to Octopus Deploy.
Setup Octopus deploy Instance
Octopus provides 30 days free trial option; you can download and setup instance on any available physical machine or you can host on cloud.
Check out the below video to set up a cloud instance
Create your first environment
Environments are where you organize deployment targets to define your deployment process. Most common environments are like Development, Test, and Production.
- To manage Environments, navigate to Infrastructure -> Environment
- Add Environment -> Give meaningful name and description
- Default Guided Failure Mode -> It helps to prompt the user when a deployment fails in the environment -> check the option if required.
4. Dynamic Infrastructure -> It allowed creating dynamic infrastructures such as targets and accounts -> check the option if required.
Create your first deployment target
Deployment targets are the servers (on-premises or Cloud) where we deploy our software/service. We can select a different type of deployment targets based on our infrastructure availability.
Adding Deployment target steps are different from one another based on type. I selected my deployment type as Windows, let’s see how we can configure.
When you choose Windows, you need to install tentacle to communicate with Octopus Deploy. Based on your infrastructure availability select your communication mode. There are two types of tentacles Listening and Polling.
Listening Tentacles: Octopus communicates with Tentacle when there are any tasks needs to be performed.
Polling Tentacles: Tentacle will poll the Octopus server periodically to check if there are any tasks for it to perform.
Download Tentacle and install. Check out the video to configure tentacle.
- Click on Add New Tentacle -> Give meaning full name -> Create.
- Click on Get Started -> select Communication mode ->I selected Polling tentacle -> Next -> select patch where you want to store logs and application (Eg: C:\octoupus\Tentaclename and C:\Octopus\Applications\Tentaclename)
- Click on next where you configure Proxy settings -> select Default proxy ->Next (proxy settings selection depends on your requirement)
- Octopus server URL, Select Authentication Mode as Username / Password or API key. (Apikey can be generated from Octopus ->Profiles -> MyApikeys ->NewApi)
- Select Machine type as Deployment target and Registration with Space Environments and Roles -> Next -> Install.
Create a project and define the process in Octopus:
A project is the collection of deployment steps, configuration variables, packages and assets that Octopus brings together and executes during the process of deploying your software.
Click on Add Project -> Give meaning full name -> Save.
After project creation, we need to define the deployment process, let’s start up with a basic step “Deploy to IIS”. Deployment steps are defined based on project requirement it can differ from one another.
Select Project -> Process -> Add step -> choose step template from Built-in Steps -> Deploy to IIS.
- Give meaning full Step name
- On Targets in Roles -> Add role (Execution on deployment targets are depends on given roles).
- Enter package details.
- Select IIS Deployment Type –> IIS website
- Give a name to website and select the package installation directory from where IIS web site to serve content.
- Give application pool name and Bindings (I’m doing local configuration, so I choose protocol like HTTP and port as 80).
- Finally, select IIS authentication and save a step.
We can define variables with values that change based on the scope of variables we defined and scope of your deployment.
I defined a variable with values for the Custom path, Relative Path (where octopus extracted the package) and values in the Config file.
Check below video to create variables.
Verify and deploy your software. Once deployed, open IIS server and click on deployed url to access your application.”
We created Environment, Projects, and deployment targets and deployed our project to the IIS server. By going through this document one can start up with deployment automation and can integrate deployment server with CI.