<p>I would not reccommed OpenStack
Docker killed OpenStack
I would reccomend to use Kubernetes,
investigate, whether it works with your app architecture</p>

CC BY-SA 3.0
2017-07-19T12:13:24.150Z
OP states "Deploying via terraform ansible & packer.", good luck porting this as containers within kubernetes. Did you try running nexus or Jenkins within kubernetes ? Does it really make sense in your opinion ? (and all in all if you really go this way, drop a word about persistent volumes as this is what OP's is after). Tl;Dr: this answer is just an opinion without any fact to back it up and doesn't address key points of the question.
Tensibai
CC BY-SA 3.0
2017-07-19T11:03:33.943Z
2017-07-19T11:03:33.943Z
Orest Stetsiak
<p>You might want to explore <a href="https://martinfowler.com/bliki/ImmutableServer.html" rel="nofollow noreferrer">immutable architecture</a>.</p>

<p><strong>Steps</strong></p>

<ol>
<li><p>CI with static analysis(Sonarqube, because free!), pushing version artefacts to Nexus. </p></li>
<li><p>Base Image using Packer. These must be revisited from time to time. Base Image has security hardening, log shippers, monitoring tools etc. </p></li>
<li><p>Environment/Application specific images from Base image.</p></li>
<li><p>healthCheck and version API for each application(healthCheck API in deployment and version for visibility of code in different VMs).</p></li>
<li><p>Deploy App using Terraform and Ansible.</p></li>
</ol>

<p>Can use Jenkins 2.0 (pipeline as code) to achieve points 1,2,3. It can be part of each application itself.</p>

<p>Let me know if this answers your question.</p>

CC BY-SA 3.0
2017-07-19T13:40:25.083Z
you could also handle the configuration part for some of them through exports/imports.  Jenkins I know supports this, could probably be achieved with nexus as well.  This way you can dynamically provision the base image with the application instead of storing a hierarchy of images.  Not that storing images is bad mind you, just a different approach.  To be taken with a grain of salt though, I've never put these ideas in production, just dabled with them for a short while.
Newtopian
CC BY-SA 3.0
2017-07-17T18:11:24.590Z
2017-07-17T18:17:07.890Z
2017-07-17T18:17:07.890Z
Munai Das Udasin
<p>Building devops pipe with tools such as Jenkins, Nexus, Hashicorp etc.. Deploying via terraform ansible &amp; packer. Intending to use load balancers in front of each tool, want to deploy tools listed above with their data decoupled enabling easier tear down for updates etc. (eg load balance x2, nexus x2, data ?) Does anyone have any advice or suggested examples of how this is achieved. Not quite ready for containers, but trying to decouple data now in readiness for such a change. Cloud provider not defined yet AWS, Open Stack etc etc ?? Thoughts welcomed.</p>

<ansible><build-pipeline>
Decoupling data of devops tools eg jenkins nexus
Nick Gleed
# Decoupling data of devops tools eg jenkins nexus

(Asked by: username_0 on 2017-07-14)

Building devops pipe with tools such as Jenkins, Nexus, Hashicorp etc.. Deploying via terraform ansible & packer. Intending to use load balancers in front of each tool, want to deploy tools listed above with their data decoupled enabling easier tear down for updates etc. (eg load balance x2, nexus x2, data ?) Does anyone have any advice or suggested examples of how this is achieved. Not quite ready for containers, but trying to decouple data now in readiness for such a change. Cloud provider not defined yet AWS, Open Stack etc etc ?? Thoughts welcomed.

**Tags:** ansible, build-pipeline


---

## 2 answers

### Answer by username_3 on 2017-07-17. Score: 4 | Accepted answer

You might want to explore [immutable architecture](https://martinfowler.com/bliki/ImmutableServer.html).

**Steps**

1. CI with static analysis(Sonarqube, because free!), pushing version artefacts to Nexus.
2. Base Image using Packer. These must be revisited from time to time. Base Image has security hardening, log shippers, monitoring tools etc.
3. Environment/Application specific images from Base image.
4. healthCheck and version API for each application(healthCheck API in deployment and version for visibility of code in different VMs).
5. Deploy App using Terraform and Ansible.

Can use Jenkins 2.0 (pipeline as code) to achieve points 1,2,3. It can be part of each application itself.

Let me know if this answers your question.

> **Comments:**
> **username_4**: you could also handle the configuration part for some of them through exports/imports.  Jenkins I know supports this, could probably be achieved with nexus as well.  This way you can dynamically provision the base image with the application instead of storing a hierarchy of images.  Not that storing images is bad mind you, just a different approach.  To be taken with a grain of salt though, I've never put these ideas in production, just dabled with them for a short while.  

---

### Answer by username_1 on 2017-07-19. Score: 0

I would not reccommed OpenStack
Docker killed OpenStack
I would reccomend to use Kubernetes,
investigate, whether it works with your app architecture

> **Comments:**
> **username_2**: OP states "Deploying via terraform ansible & packer.", good luck porting this as containers within kubernetes. Did you try running nexus or Jenkins within kubernetes ? Does it really make sense in your opinion ? (and all in all if you really go this way, drop a word about persistent volumes as this is what OP's is after). Tl;Dr: this answer is just an opinion without any fact to back it up and doesn't address key points of the question.  

---

