Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ansible - Automation remote or local?

If running an automation tool like Ansible to build your infrastructure stack in the cloud (e.g. AWS), is it enough to have your automation tool and build stack in separate regions/VPCs in the cloud, or does it make more sense to have your automation tool and scripts locally (own datacenter/machine)?

Both seem to be used, but I was just wondering if there was a best practice standard.

like image 814
rockaja Avatar asked Sep 20 '15 19:09

rockaja


People also ask

What are the disadvantages of using Ansible for IT automation?

Ansible disadvantages include debugging, performance, complex data structures and control flow. Complex data structures. Many network automation tasks require complex data structures. One of the first things I considered when learning Ansible was to use it to perform network discovery.

How does Ansible work in network automation?

Ansible Network modules extend the benefits of simple, powerful, agentless automation to network administrators and teams. Ansible Network modules can configure your network stack, test and validate existing network state, and discover and correct network configuration drift.

Can Ansible be used for automation?

Ansible is an open source IT automation engine that automates provisioning, configuration management, application deployment, orchestration, and many other IT processes.

Is Ansible good for network automation?

Ansible is one of the most popular open source network automation tools. Network pros can use it to perform basic network automation tasks, like collecting ARP table data.


1 Answers

As a contrast to xeraa's good answer we run as much as possible from inside AWS.

The real benefits we get from this is that it allows us to use centralised Jenkins servers that run Ansible (and Terraform in our case for the actual AWS provisioning with Ansible just used to configure EC2 instances and run ad-hoc playbooks for administrative tasks).

We can then control access to these Jenkins servers through credentials and/or security groups/NACLs.

Doing it this way means we can control the amount of people who have some form of credentials that would allow them to build anything they like and/or destroy anything they like.

Ideally we'd only provide credentials to the Jenkins servers via IAM EC2 instance roles but we're not quite there yet.

One real positive out of this is that our front line/second line support guys who use Windows pretty much exclusively can access a nice web GUI for managing things in the middle of the night and run Jenkins jobs that they specifically have access to run that will do things such as restarting a server/service or even rebuilding part of a VPC.

We have a separate "dev" account that developers have access to from their own machines and it's here that we build things out as we develop our Ansible (and Terraform) code base before that code base is then used in our test and production environments.

like image 180
ydaetskcoR Avatar answered Sep 27 '22 21:09

ydaetskcoR