Reddit DevOps
270 subscribers
2 photos
31K links
Reddit DevOps. #devops
Thanks @reddit2telegram and @r_channels
Download Telegram
Free intro to Linux commandline/server course starting 5 July 2021


This free month-long course is re-starting again on the first Monday of next month.

This course has been running successfully now every month since February 2020 - more detail at: https://LinuxUpskillChallenge.org - daily lessons appear in the sub-reddit r/linuxupskillchallenge - which is also used for support/discussion.

Suitable whatever your background, and aims to provide that "base layer" of traditional Linux skills in a fun interactive way.

Any feedback very welcome.

https://redd.it/oaf8cy
@r_devops
Best Udemy Course to learn DevSecOps

Hi everyone!

I have 3 years of agile development (Scrum) in Java Web. I started studying topics about security, like OWASP, Pentesting, etc and I want to work with DevSecOps.

I live in Brazil, so things can be a bit different, but can you point to me some of the best courses about this subject, so I can apply to jobs?

Thanks :)

https://redd.it/oaiyhg
@r_devops
Sql failover groups and cross regional DR

I thought the purpose was to have high availability so if one goes down the other will pick up however it seems they are all on the same server so that wouldnt work? How do you use them for cross region geo disaster recovery in azure? How much of it is redundant?

https://redd.it/oa8wx6
@r_devops
Delivery Plan Expanded

Hi,

​

Anyone have any ideas how to plot your epics/features ala Gannt chart? I like delivery plan because it has a good look and details but it does not scale out enough. ie I want to scale out 1-2 years not just 4-5 months potentially. Anyone have any recommendations>

https://redd.it/oa5tuh
@r_devops
Jira collector hygieie 401 unauthorized error

Below is my application.properties file.

\# Database Name

dbname=dashboarddb

​

\# Database HostName - default is localhost

dbhost=9.8.x.x

​

\# Database Port - default is 27017

dbport=27016

​

\# MongoDB replicaset

dbreplicaset=[false if you are not using MongoDB replicaset\]

dbhostport=[host1:port1,host2:port2,host3:port3\]

​

\# Database Username - default is blank

dbusername=dashboarduser

​

\# Database Password - default is blank

dbpassword=dbpassword

​

\# Logging File location

logging.file=./logs/jira.log

​

\# PageSize - Expand contract this value depending on Jira implementation's

\# default server timeout setting (You will likely receive a SocketTimeoutException)

feature.pageSize=100

​

\# Delta change date that modulates the collector item task

\# Occasionally, these values should be modified if database size is a concern

feature.deltaStartDate=2016-03-01T00:00:00.000000

feature.masterStartDate=2016-03-01T00:00:00.000000

feature.deltaCollectorItemStartDate=2016-03-01T00:00:00.000000

​

\# Chron schedule: S M D M Y [Day of the Week\]

feature.cron=0 * * * * *

​

\# ST Query File Details - Required, but DO NOT MODIFY

feature.queryFolder=jiraapi-queries

feature.storyQuery=story

feature.epicQuery=epic

​

\# JIRA CONNECTION DETAILS:

\# Enterprise Proxy - ONLY INCLUDE IF YOU HAVE A PROXY

\#feature.jiraProxyUrl=https://proxy.com

\#feature.jiraProxyPort=9000

feature.jiraBaseUrl=https://xxx.atlassian.net

feature.jiraQueryEndpoint=rest/api/2/

\# For basic authentication, requires username:password as string in base64

\# This command will make this for you: echo -n username:password | base64

​

feature.jiraCredentials=xxx

​

\# OAuth is not fully implemented; please blank-out the OAuth values:

​

feature.jiraOauthAuthtoken=

feature.jiraOauthRefreshtoken=

feature.jiraOauthRedirecturi=

feature.jiraOauthExpiretime=

​

\#############################################################################

\# In Jira, general IssueType IDs are associated to various 'issue'

\# attributes. However, there is one attribute which this collector's

\# queries rely on that change between different instantiations of Jira.

\# Please provide a string name reference to your instance's IssueType for

\# the lowest level of Issues (for example, 'user story') specific to your Jira

\# instance. Note: You can retrieve your instance's IssueType Name

\# listings via the following URI: https://[your-jira-domain-name\]/rest/api/2/issuetype/

\# Multiple comma-separated values can be specified.

\#############################################################################

feature.jiraIssueTypeName=Story

​

\#############################################################################

\# In Jira, your instance will have its own custom field created for 'sprint' or 'timebox' details,

\# which includes a list of information. This field allows you to specify that data field for your

\# instance of Jira. Note: You can retrieve your instance's sprint data field name

\# via the following URI, and look for a package name com.atlassian.greenhopper.service.sprint.Sprint;

\# your custom field name describes the values in this field:

\# https://[your-jira-domain-name\]/rest/api/2/issue/[some-issue-name\]

\#############################################################################

feature.jiraBugDataFieldName=customfield_10201

​

\#############################################################################

\# In Jira, your instance will have its own custom field created for 'super story' or 'epic' back-end ID,

\# which includes a list of information. This field allows you to specify that data field for your instance

\# of Jira. Note: You can retrieve your instance's epic ID field name via the following URI where your

\# queried user story issue has a super issue (for example, epic) tied
to it; your custom field name describes the

\# epic value you expect to see, and is the only field that does this for a given issue:

\# https://[your-jira-domain-name\]/rest/api/2/issue/[some-issue-name\]

\#############################################################################

feature.jiraEpicIdFieldName=customfield_10002

​

\#############################################################################

\# In Jira, your instance will have its own custom field created for 'story points'

\# This field allows you to specify that data field for your instance

\# of Jira. Note: You can retrieve your instance's storypoints ID field name via the following URI where your

\# queried user story issue has story points set on it; your custom field name describes the

\# story points value you expect to see:

\# https://[your-jira-domain-name\]/rest/api/2/issue/[some-issue-name\]

\#############################################################################

feature.jiraStoryPointsFieldName=customfield_10003

​

\#############################################################################

\# In Jira, your instance will have its own custom field created for 'team'

\# This field allows you to specify that data field for your instance

\# of Jira. Note: You can retrieve your instance's team ID field name via the following URI where your

\# queried user story issue has team set on it; your custom field name describes the

\# team value you expect to see:

\# https://[your-jira-domain-name\]/rest/api/2/issue/[some-issue-name\]

\#############################################################################

feature.jiraTeamFieldName=

​

\# Defines how to update features per board. If true then only update based on enabled collectorItems otherwise full update

feature.collectorItemOnlyUpdate=true

​

\#Defines the maximum number of features allow per board. If limit is reach collection will not happen for given board

feature.maxNumberOfFeaturesPerBoard=1000

​

\# Set this to true if you use boards as team

feature.jiraBoardAsTeam=false

​

\#Defines the number of hours between each board/team and project data refresh

feature.refreshTeamAndProjectHours=3

​

I'm getting 401 un-authorized error when I run java -jar /opt/hygieia-feature-jira-collector/target/jira-feature-collector.jar --spring.config.name=feature --spring.config.location=application.properties

​

2021-06-29 09:51:00,034 [taskScheduler-1\] ERROR o.s.s.s.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.

org.springframework.web.client.HttpClientErrorException: 401 Unauthorized

at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:108)

at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:709)

at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:662)

at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:622)

at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:540)

at com.capitalone.dashboard.client.RestClient.makeRestCallGet(RestClient.java:158)

at com.capitalone.dashboard.collector.DefaultJiraClient.makeRestCall(DefaultJiraClient.java:828)

at com.capitalone.dashboard.collector.DefaultJiraClient.getJiraIssueTypeIds(DefaultJiraClient.java:299)

at com.capitalone.dashboard.collector.FeatureCollectorTask.getCollector(FeatureCollectorTask.java:98)

at com.capitalone.dashboard.collector.FeatureCollectorTask.getCollector(FeatureCollectorTask.java:50)

at
Nobody's ever fired for picking AWS...

Is it just me, or do many of us see the AWS vs. Azure vs. GCP decision tree like this?:

IF you can't live without Windows => Let's get on Azure, first

ELSEIF you're addicted to BigQuery => Hmm, guess we'll try GCP

ELSE "Any objections to AWS? No? Woot, free tier!"

(notwithstanding those of you with VIP treatment / special deals with your cloud's sales team)

https://redd.it/oaijme
@r_devops
Connecting sonarlint with online sonarqube

Currently, I'm using sonarLint in intelliJ IDEA, but I realised that some of the detected issues in sonarLint are different in SonarQube. Does anyone have any idea why?

To remove the gap, I'm attempting to bind the project to a remote SonarQube, (my company account), is it possible to do that? From all the tutorials I've seen, they are usually binded to a local sonarQube (localhost:9000).

Appreciate any insights on this! Thank you!

https://redd.it/oapv4a
@r_devops
Building in a chroot for pxe booting nodes

So I've got a slightly different situation but I'd really like to use packer.

I've got a bunch of nodes that boot from PXE. They boot into an NFS root, grab a squashfs on that NFS root, load it into ram and then switch root into that and ditch the nfs.

The images, both NFS and squashfs are just built as flat folders, so you can chroot into them on the build/boot hosts. No VM's or other stuff. But I'd really love to use packer to make them.

Currently we have to by hand chroot into the image, install stuff/change settings and whatever, then squashfs the resulting folder up.

It would be far nicer to just edit the packer files and run a build.

I've looked at the available chroot builders and they don't quite do what I need.

I guess I'm interested in how hard it would be to make a new builder/whatever to do these from scratch. I mean its just a "rpm --initdb --root blah" "rpm --root blah -ihv centos-release-whatever.centos.x86_64.rpm" and a "yum install --installroot=blah bash yum rpm" to get to a usable chroot state.

I realise it's a bit of a departure from packers standard mode of operation but I don't think it's too far.

Any tips/advice or builders I've missed (no kvm use please) would be welcome.


EDIT: It looks like I might be able to modify this builder https://github.com/summerwind/packer-builder-qemu-chroot to do what I want. Now I just need to learn go.

https://redd.it/oapnc5
@r_devops
Vmware infra automation

Hello devops!

I've started an automation related role and looking for some advice,

I need to automate full deployment of esxi - or at least as much of it as possible.

This means everything from vswitch, datastores, users on the vcenter, roles, permissions, etc to VM deployments.

The latter part - VM deployments there are many examples online but not so much the first part of the more basic infra.

Anyone here with experiance of doing the above or part of it?
I know there are tools such as ansible, terraform, chef, puppet but each one of them has its drawbacks and I would like to hear which tools you guys are using.

​

Thanks greatly.

https://redd.it/oaqzis
@r_devops
Azure DevOps over Spinnaker+Jenkins combination

Why would you choose Azure over a combination of other open source CICD tools. ? i understand that the TCO will be less. But i want the view point of an developer/devops engineer.

OR

Why will you not choose Azure DevOps

https://redd.it/oasorm
@r_devops
Azure Pipeline running task in background?

Hey there,

I am in the need to start a node.js server before I am running the tests in the pipeline. But using plain tasks wont work, since Azure waits until a task completes.


We have a multi-stage pipeline set up and run unit tests in parallel as well.

I am really lost here, since I am not too used with Azure pipelines but other CI where you can define a task as a background task and it continues running, while the other tasks run.


The documentation on this one is really lacking so I hope someone here can help me out.

https://redd.it/oatbaw
@r_devops
Is there some way to make datadog monitors/alerts less full of useless info?

We are using datadog monitors/alerts in our company.

The developers complain that it is hard to see what the alert says, each alert doesn't contain just the info you need, it contains lots of extra junk.

I'm for example tried removing tags from the alert, but if your query makes use of some variable for example {container_id} then the tags in the alert will also contain this. Even if your alert contains no actual tags in the frontend.

https://redd.it/oau4wb
@r_devops
"Code Smells" not reflected in sonarLint (IntelliJ IDEA)

I've managed to connect my remote sonarQube to sonarLint in my IntelliJ project. The bugs + vulnerabilities are shown. However, Code Smells are not showing up.

Have anyone experienced this before? And do you know how to resolve this issue? Thanks!

https://redd.it/oasa04
@r_devops
Virtual RabbitMQ Meetup - RabbitMQ and PHP with PHPAmqpLib

In the lead up to RabbitMQ Summit 2021, our virtual RabbitMQ users conference, we're running an exciting free Meetup. As well as a fantastic talk, we'll introduce you to a few of the key speakers at the event and have a social networking session for all attendees on the Toucan Lounge (an awesome virtual space that is perfect for Meetups and socialising).

You can register to join free at https://www.meetup.com/London-RabbitMQ-Meetup/events/278994466/

https://redd.it/oavxxa
@r_devops
Jenkins / Terraform - Full automated deployment and clean up based on git branches/merge events

I realise the title is misleading. I am asking if it's possible and if someone has some pointers / links / etc to help me go through with it.

I've jenkins setup to manage QA/UAT and production pipelines but while the production is quite more "stable" (deploys the applications in kubernetes) the QA/UAT one is much more dynamic.

As a starting point I'm having that environment bound on a specific branch but as the dev team is growing, there will be multiple parallel features on a same product and I think it's better if each feature would have it's own environment deployed, connected to a branch.

What I am trying to achieve here is to have each branch starting from develop having a terraform config (a default template) deploying the resource, then the application deployed. Let's skip the details for the "app deployment" as that could be a docker image or barebone code, it really depends on the application and its current state.

I know I can do that using Jenkins multi-branch pipelines and even if I haven't done that yet, there are plenty of tutorials etc. I wonder, however, if it's possible to write that pipeline in groovy instead of using the UI as all tutorial I found seems to do. I suppose so.

However, the question I have is: can I make it so that when a branch is merged, closed or deleted, the entire deployed resource (via terraform) is removed as well? Can you point me to the right documentation/tutorials/etc for, I assume, jenkins?

I searched online in these past couple of days but I must be using the wrong terms because google is not returning anything useful or is getting confused by having jenkins, terraform, git in the same query.

https://redd.it/oavrin
@r_devops
Can I Please Get Suggestions on a Good Linux Networking Course - Not For a Certification

I am increasingly finding myself in situations where I need to make networking configuration changes. Each time I encounter one of these problems I have to spend time sifting through tutorials and documentation online to figure out how to accomplish my task. I would like to get some recommendations for some good Linux Networking courses for someone in a DevOps role.

I would rather not take a 25 hour in depth course, I was hoping for something more in the 4-10 hour range that will help me understand DNS, VPNs, GateWays, Routes, etc. I have a basic understanding of networking, and I have several AWS certs and have a decent understanding of networking in the cloud, but even something as simple as setting hostnames for local nodes required me to do some research last week. Instead of having to do this every time I run into a problem, I would like to just have a practical knowledge so that even if I don't remember how to do something off the top of my head, I will have a better idea of what resources to seek out to find a solution.

I am not really interested in getting any kind of networking certification, so I was really just hoping to find a course that will teach me the practical things that I need to know when setting up a local K8 cluster, or creating a local DNS server, etc.

Thank you in advance for your suggestions!

https://redd.it/oawmwe
@r_devops
Looking for an alternative to EC2Box (multiple SSH terminals for EC2 via web)

Basically looking for a tool I can run in a container on our dev server and access via browser to open multiple SSH terminals connected to EC2 instances. Simple, fast and modern. We've been using EC2Box for too long (and it still works I guess), and I'm sure there are better alternatives right now that are currently maintained.

I've looked at some candidates like Boundary but I'm not sure those are simple enough, maybe there are simpler tools out there?

https://redd.it/oazd1d
@r_devops
Integrate Rundeck with Github

Is there a way to integrate Github with Rundeck where when a job runs, the 1st step, it will goto github and download the latest version of a script and run the latest version?

https://redd.it/ob06jj
@r_devops