Reddit DevOps
274 subscribers
64 photos
32K links
Reddit DevOps. #devops
Thanks @reddit2telegram and @r_channels
Download Telegram
jsonnet IDE?

So I wanted to mange my Grafana dashboards as code and found [grafonnet-lib](https://github.com/grafana/grafonnet-lib) which looked promising.

After reading about jsonnet and getting all excited I quickly realized there is no full fledged IDE for jsonnet, sure some IDEs have plugins (intellij, atom, vscode), but not one provides a complete set of feature like autocomplete, goto definition, code folding, vscode comes close but the plugin hasn't been maintained since March 2018, and I refuse to work with vscode/atom since they feel like toys compared to Intellij products.

How do people mange their jsonnet code? I want amazed to find that a tool release in 2014 still doesn't have decent integration with popular IDEs.

https://redd.it/g5yeeu
@r_devops
J COle Morrison awsdevops.io AWS Devops Master workshop

Hi

Has anyone went through/completed training -AWS devops master workshop of Cole morrison?Does it provide a thorough understanding and real time experience and is it good for who is new to AWS and devops?

https://redd.it/g5w7t2
@r_devops
POSTMAN request doesn't work for me but works for others

I have been trying to run a PUT in POSTMAN, it gives me a 400 error.

However I provide my CURL to somebody else and it works, any ideas what could be causing this?

Thanks!

https://redd.it/g5wzpy
@r_devops
What made you to hire another devops?

Do you remember a moment that made you to take this decision and hire another DevOps?
What was the cause?
Production Problems? Help to R&D? On Call?

https://redd.it/g5w74d
@r_devops
Custom error pages based on response header

I am trying to solve an obscure task here and I need some help guys.
We have an application running on kubernetes and an nginx is set up in front of it to proxy pass the traffic to kube services. I need to setup custom error pages for 5xx and 4xx on nginx. There are, however, cases when developers specifically need to show the error response body from upstream in the browsers with some 4xx code. We came up to an agreement that they will send a specific custom header in the error response which they handled and I need to check if that header is present in the response then let the error appear as is, otherwise I need to show my custom error page. Can anyone suggest a configuration example on how to achieve this?

https://redd.it/g5btv7
@r_devops
Continuously evolving full stack Web App dev ops flow

Hello!

I have a full stack project that I have been working on with the following stacks:

\- Express Backend (Exposes GraphQL + WebSocket endpoints) hosted on Heroku with Redis for cache/pubsub.

\- React SPA Frontend hosted on Zeit Now.

\- Static assets like images on S3 & CloudFront CDN.

\- Postgres hosted on RDS

\- GitLab for source control + CI/CD

\- Have 3 environment deployment set up (review => staging => production)

\- Sentry for error reporting.

​

As I scale up the app and as I add more features, I am running into different road bumps and would like everyone's thoughts. (Apologies if not everything is "devops" related.)

1. The web app crashes every time I deploy a new app until the user refreshes the screen (because the old javascript assets no longer exist). There seems to be a LOTs of solutions here; what do you guys recommend for updating users to a new version of the app? Couple solutions are... Continuing to serve up old javascript assets (but people will be on an outdated app until they refresh. Could be a problem if the server introduced some new changes.) Would Server Side Rendering help here?
2. Currently, the frontend/backend is in a monorepo, and every time i make a change to the app, I have the CI/CD set up so that both front/backends will get deployed in parallel. This \_can\_ be problematic if IF am introducing breaking changes in the backend. How can I
3. Currently using too many platforms ? (Heroku, Zeit Now, AWS, Sentry, etc.). The app is getting more and more traction, and would like to support growing needs and features as fast as possible. Should I consolidate to AWS? I want to minimize dev-ops maintenance. Thoughts?
4. I have to add queues (for sending emails, analytics, etc.). I was thinking Thoughts here?
5. I want to add smaller services for different tasks (external webhooks, invoice generation, queue workers, websocket connection nodes, etc.) but currently I have been piling stuff on top of the existing express backend. I can see this is going to become monolithic if I continue this way. Am I pre-optimizing for microservice? Should I spend some time to create something that helps spin a new service?
6. Want to set up terraform scripts for the overall infrastructure. Too ambitious as a one man team?
7. Feel like I am not getting a good exposure to the health of the systems beyond Sentry error reporting. What's the easiest way to get started with monitoring these?

Apologies for lots of questions. I think I am mostly torn on all these questions because there are just lots of different solutions and finding myself in analysis paralysis. I have a tendency to overcomplicate and overthink things so feel free to tell me to KISS if you feel this way.

As I start a company, there are simply TOO many things I have to set up. You can also point me to different resources for someone like me starting off a software startup!

Really appreciate your help in advance!

https://redd.it/g641fm
@r_devops
[Help] Trying to setup my first CI/CD pipeline.

Hello /r/devops,

I have a general devops question.

I'm trying to build my first CI/CD pipeline.

I have a simple node/react web app

the backend is in one repo, the front in another.

I was hoping that with circleci I would be able to push to either master branch and start a pipeline that would result in a single doker image that can be deployed on my server.

So far I haven't been able to figure out a way to connect the two circleci 'projects' to create that single docker image.

I think that I may have the wrong idea about something.

Should I be looking to integrate another service like chef or puppet?

Should I just be doing this all on my own server with a bash script?

Any tips and pointers would be greatly appreciated.

For the record, I'm very comfortable with docker, bash, git and linux. But I'm very new to tools like circleci and ansible.

Thanks very much

https://redd.it/g66yos
@r_devops
What tools are you using for loadtesting?

I have no favourite so far. Currently looking at [https://locust.io/](https://locust.io/)

If I would need to go for paid solutions, I guess it would be [https://loadimpact.com/](https://loadimpact.com/)

https://redd.it/g69ue8
@r_devops
How to expose a service on Nodeport under EKS cluster with private subnets ?

I have an EKS cluster set on private subnets and worker nodes don't have a public ip, i want to expose a service on nodePort so i can reach it on <nodeIP>:<nodePort> but on the browser it shows me **site can not be reached**

https://redd.it/g67dmn
@r_devops
Interview preparation and interview questions for DevOps and SRE

I have compiled a small ebook for DevOps and SRE preparation. This book is based on rounds that can happen in a DevOps or SRE interview at companies like LinkedIn, Atlassian, Visa, etc. It has below chapters that will help you understand each round and how to approach it.

1. Linux Questions

2. Cloud Specific questions

3. Python programming

4. System design round and how to approach it.

5. Incident management.

6. Basic system Troubleshooting.

7. How to do code reviews.

These are motivated by interview round that happens in big companies that are hiring SRE and DevOps.

I hope this will help you. Feedbacks are welcome.

Thanks to Rahul Sinha for his contribution. hashtag

\#linux #sre #devops #systemdesign #interviewpreparation

\#interviewprocess #book #python

&#x200B;

[https://www.amazon.in/Interview-preparation-interview-questions-DevOps-ebook/dp/B086ZVY7KM/ref=sr\_1\_1?dchild=1&keywords=interview%20devops&qid=1586755852&s=computers&sr=8-&fbclid=IwAR0iYwFaq4zS6mOuZAoY\_lIpgetHw2NbtyJf73KQZHP-Al-RI3GHQhuUZm8](https://www.amazon.in/Interview-preparation-interview-questions-DevOps-ebook/dp/B086ZVY7KM/ref=sr_1_1?dchild=1&keywords=interview%20devops&qid=1586755852&s=computers&sr=8-&fbclid=IwAR0iYwFaq4zS6mOuZAoY_lIpgetHw2NbtyJf73KQZHP-Al-RI3GHQhuUZm8)

https://redd.it/g67a4v
@r_devops
Question on NGINX reverse proxy when there are services on the host and on containers

So, I have this architecture depicted in the attached picture, which consists
of a nginx server on the host machine, and 3 URLs, app1.com, app2.com, app3.com.

app1 and app2 are both in the host machine, lets say they are an HTML file on the host, on the container, there is app3 and app2.com/example url.

My question is, how can I reference the container in the nginx of the host?
Since I cannot expose port 80 and 443 of the container, because the host
is already using these ports, I am not sure what is the best approach to this.

I though about putting the container on a not used port, like 8999 for example,
and proxying the request to this port, and blocking these ports on the firewall,
so no one outside can access them. If I go with this option, does the nginx
configuration inside of the containers will need the server_name still? In the
case of the app3.com/example

The other option I thougth about is using the docker socket, or even the docker0
network, but I don't know if this is viable.

An example of the nginx configuration file of the host:
```conf
server {
server_name app1.com;
location / {
root /var/www/app1/index.html;
}
}

server {
server_name app2.com;
location / {
root /var/www/app2/index.html
}

location /example {
proxy_pass https://localhost:8999;
}
}

server {
server_name app3.com;
location / {
proxy_pass https://localhost:8999;
}
}
```

Example of the nginx configuration file of the container:
```conf
server {
server_name app2.com
location /example {
root /var/www/app2/index.html;
}
}

server {
server_name app3.com;
location / {
root /var/www/app3/index.html;
}
}
```

Rough picture of the architecture (sorry):
https://imgur.com/Hx3enGi.png

https://redd.it/g6jigv
@r_devops
How to prepare for a 50 min devops assigment?

I got an email to complete a timed assessment it has some Jenkins in it which I’m not too familiar with. I never done a Devops time assignment what should I expect?

https://redd.it/g593os
@r_devops
DB Migrations for build pipeline in Azure DevOps

So I'm kind of stuck on how best to accomplish this. I have a docker image that's being run as a Web App for Container in Azure. Build and release pipelines are already setup with the build pipeline building and pushing the image to the container registry and then creating an artifact to be used by the release pipeline. All of that works great but occasionally we need to be able to run 'rake db:migrate' against the image before it boots in the container.

Is the best way to do this by adding a step after build which just runs a one line script such as docker exec $container rake db:migrate ?

https://redd.it/g6r44k
@r_devops
How to hide nginx version in elastic beanstalk + Docker

Hello!

My question is similar to

[https://stackoverflow.com/questions/31603784/how-to-hide-nginx-version-in-elastic-beanstalk](https://stackoverflow.com/questions/31603784/how-to-hide-nginx-version-in-elastic-beanstalk)

I am running app on the platform docker + elasticbeanstalk and wish to hide the nginx version from the HTTP headers.

Should I just add a http block ? I am asking because the platform is different and also I don't see the http block in the current nginx conf file.

&#x200B;

Thanks.

https://redd.it/g6q2aw
@r_devops
Wired dot1x, Linux machines out of domain

Hello!

First of all - nice to meet you all, as this is my first post here.

I have a quite an issue. Or more like a solution that is not entirely perfect and I'm wondering if there is some way to make it better.

A little background - we're currently implementing dot1x solution in our company that is mostly MS oriented so Active directory and so on. Unfortunately (for me) there are some specific projects that do not use Windows - so Linuxes and MacOS. Moreover - machines that are not windows are generally NOT in ad with users having access to root. As for if this is good idea. Obviously not, but what do I know, not my idea. Fortunately Ubuntu machines are mostly Ubuntu so when I write Linux I generally mean Ubuntu (18.04 is standard if that matters)

Radius server for dot1x is on Cisco use - which is good - we're mostly on Cisco and ise seems to work quite well with ad.

For the plan:
Windows machine is authorized via ad computer account to some profile and assigned some vlan id. Whenever some users logs into it then he's authorized via radius and if needed - assigned another profile.

Problem is with Linux machines. As I know there are two options right now:
1. Use certificate for machine to authorize with and bind certificate to profile
2. Use users credentials on wired configuration

Now for the problems with both of these:
1. We obviously would need to distribute certs manually and change them whenever people move from one project to another. This is just not scalable, but worst case scenario.
2. As users have root they can pretty much check password stored for dot1x, as user/password used would be from ad - this is not secure and will be axed the moment we mention it

Is there some smart way to make it work?
Maybe create same computer in ad, set hostname on Linux and make authorization work by forcing radius to query computer account based on hostname? Or maybe some way to encrypt all dot1x configuration so NOONE can check what credentials are stored for dot1x? This would require some synchronization with checks for password between as and linux, but better then nothing.

Or maybe there is some other, more 'gentle' way to make such solution work in my case?

https://redd.it/g6uqa8
@r_devops
Prometheus Exporter Java Agent not working

I am attempting to setup confluent kafka v5.4 and running the prometheus JMX exporter. I have found this blog for how to get this setup https://alex.dzyoba.com/blog/jmx-exporter/ . Kafka is setup and runs just fine but the endpoint for the exporter returns nothing. I've tried just about everything for how I call the javaagent in the systemd script but nothing seems to work.

[Unit]
Description=Confluent Kafka Broker
After=network.target network-online.target remote-fs.target zookeeper.service

[Service]
Type=forking
User=confluent
Group=confluent
Environment="KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.javaagent=/opt/prometheus/jmx_prometheus_javaagent.jar=8080:/opt/prometheus/config.yaml"
Environment=LOG_DIR=/var/log/confluent
ExecStart=/opt/confluent/confluent-5.4.0/bin/kafka-server-start -daemon /opt/confluent/confluent-5.4.0/etc/kafka/server.properties
ExecStop=/opt/confluent/confluent-5.4.0/bin/kafka-server-stop
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

Any ideas on how to call that java agent in the systemd script to get it to work correctly?

OS Centos 7
JMX exporter 0.12.0
Java openJDK 11

Logs that I have found are not telling me anything as to why it's not running. Maybe I'm looking at the wrong logs.

https://redd.it/g6teui
@r_devops
Frustrated with trying to do configuration management on Jira

Is anyone else really frustrated with trying to do configuration management on Jira Server, especially while trying to do configuration as code? It just seems like trying to automate some things seems all over the place, sometimes you have configuration files, sometimes you need to do it via the REST API, sometimes you need to fiddle with some database tables it just seems that everything is so inconsistent.

The worst offender of this seems to be plugins, we tried to implement SAML SSO via a plugin but automating that setup seems outright impossible.

Is there anything obvious I'm overlooking here or do other people have troubles like this too?

https://redd.it/g6ob66
@r_devops