Stack Exchange Network

Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange
7

Vagrant is for setting up test environments right? Ansible/Chef etc. seem good for servers you own, but what about cloud? Docker... great for standardizing app, so why use Ansible/Chef? Kubernentes.. good for deploying to multiple environments and scaling Just a personal note: the way you formulate these things makes me assume that you are diving freshly ...


6

Such question could be an indication of a poor architectural slicing into microservices. From What are Microservices?: These services are built around business capabilities and independently deployable by fully automated deployment machinery. The key point missed in such case would be their independently deployable aspect. The point could also be ...


5

Alright... you're not going to implement every tool or automation at the same time, as some of them have quite deep impact on your development processes (and I daresay, development culture). Take a step-by-step approach; research each individual tool. Figure out what it actually does, what it is useful for. Play around with them, install them locally, go ...


4

Assuming there are no changes in Master that are not in your release branch and you don't rebuild after you merge the code then you could deploy first and then merge to master. If either of those are not true, then merging first would be more common. The process depends on how you handle your branching strategy. If other things could be merged into ...


4

The best stack depends on what environments and platforms your working with, how much standardization you already have, and if your working with open source or not. If you have the option of using containers for everything then you can simplify the stack and reduce the tool set used. The other important note is you are deploying application artifacts and ...


4

Hi and welcome to DevOps SE! While DevOps is not self-purposed, maybe it is worth to step back for a moment to find out the actual problem before trying out solution. As you have asked a more or less generic question, I'll give you sort of a "DevOps primer" stick more to methodology rather than give you a list of tools. How detailed you would tailor the ...


3

Globbing is a term used for matching file name patterns with wild cards. You can see a more detailed definition here https://searchsecurity.techtarget.com/definition/globbing As it relates to Salt Stack, it's finding the minion id using wild cards. Additional details here: https://docs.saltstack.com/en/latest/topics/targeting/globbing.html


3

I've been responsible for setting up DevOps processes in two companies from scratch so hopefully this will help. Others have asked questions about business objectives but I'm going to give you a brief rundown of some of the problems we had and the technologies I used to fix it. Infrastructure Creation/Management was slow and error prone - I started ...


3

Try LFTP that has commands to mirror or parallel copy. LFTP can run over many protocols. The likely problem you have is that you are transfering a lot of data from a build service to a single vm over the Internet. Enterprises use the same tools and protocols but they pay for more bandwidth else ensure that their builds and deploy happens within the same ...


2

There are currently 5 dunder dictionaries. They are available at runtime and generally not stored statically. __opts__ - Master or Minion configuration options; stored in configuration files of master and minion, collected at startup __salt__ - Execution module functions (i.e. __salt__['test.echo']('foo')); from built-in and custom execution modules ...


2

Your updated question completely changed my understanding :) Since the db is on a user-defined bridge in both cases, the advantages of using user-defined vs legacy/default bridges discussed in the doc section you referenced (which are applicable in both cases) aren't what differentiates the 2 cases. From that perspective they're equivalent. Original Answer:...


2

Here is a Webhook rule to catch Github release events and run a custom bash script. It is run by adnanh/webhook which is a small go app that can run your deployment script. You then configure GitHub to send release events as per this screenshot: You can then use the github hub command line tool to create releases with a name that matches the regex in the ...


1

What you're after is referred to as "Review Apps" by Gitlab and Heroku. It relies on a CI/CD system that runs pipelines on every branch, and exposes the branch name to the build (usually as an environment variable). You can then use the branch name to namespace the resources created by your Infrastructure as Code. You have mentioned Docker so I will use ...


1

Labels lets you as user query for particular objects; from the docs: Labels enable users to map their own organizational structures onto system objects in a loosely coupled fashion, without requiring clients to store these mappings. For example if you use some kind of deployment tool like Spinnaker; the tool labels every single object that it touched so ...


1

Welcome to devops.stackexchange.com. What works best is dependent upon the team. Find a good tool for the team and perhaps change that when the circumstances change. Also you might do a little thinking ahead to work out what approach might be best fit for the near future (e.g., will my team expand? will my number of servers expand? will I have a security ...


1

There are now two possible solutions: One NPM only one, and a clean one. First the NPM One (where im not quite sure what exactly will work): I just googled "npm deployment" and found 3 different Plugins which do exactly that what you want ( 1, 2, 3) and there are many more. Which now you suits you best, will be your choice. Now the cleaner one (because we ...


1

Not sure this helps you directly, but one option is to build the application within your CI build and push the (versioned) binaries/packages into an artifact repositorie like Sonatype Nexus or JFrog Artifactory. Your build would then, in a later step pull these binaries from the target machine/from within the droplet. There are many packaging formats, ...


1

You need to use continuous deployment tools. Not available yet.


1

I think it might be a good idea to update deployment.yaml for each version/release and commit to git so that later, any other person may follow through and even revert back to an earlier release/version.


1

Database migrations are a pretty standard thing for a long time, I believe - not related that much to DevOps, though obviously needed. There are ready-made tools which are agnostic of your programming environment, i.e., not directly tied to whatever ORM the devs are using. Strategies of how to actually decide which DDLs/DMLs to feed to the DB might vary; i....


1

[Copying answer over from duplicate post] If you start a container with an environment variable, that variable is part of the container definition. As a pro, when the server is rebooted, the same variable will be there when the container restarts. But as a con, anyone with access to the docker API can view that secret in clear text, and some apps log their ...


1

The main problem here is, that from a Kubernetes point-of-view nothing has changed to your deployment. So nothing gets updated. The best solution here would be, that you add something to your image tag, like the git short hash, for example. The your update will just work. Also you will make your deployments re-creatable, when you do it this way. If you ...


1

We had a similar situation wherein one of our applications had to be built, deployed and be up & running before the second one was. This was because application A has some functionality that should be executed prior to it being referenced via application B. The way we accomplished this was by building it into a single delivery pipeline. That way, all the ...


1

What you have above seems like a reasonable update procedure, however you can also use persistence or a sticky session so that when a user goes to a web server, they will be routed to the same web server for the life of their browser session (or for the next hour, or whatever you decide to configure). This also allows for some A/B testing if you need to get ...


1

solutions is: OpenConnect Plugin See here: https://wiki.jenkins.io/display/JENKINS/OpenConnect+Plugin OR also you can use below method: On Linux (Debian based) sudo apt-get install openconnect Add the following lines to the bottom of /etc/sudoers (ubuntu configuration) jenkins ALL=NOPASSWD:/usr/sbin/openconnect* jenkins ALL=NOPASSWD:/bin/kill* Then ...


1

this setup worked perfectly for me using aws code deploy:


Only top voted, non community-wiki answers of a minimum length are eligible