Giter VIP home page Giter VIP logo

michaelcade / 90daysofdevops Goto Github PK

View Code? Open in Web Editor NEW
25.9K 25.9K 6.1K 302.41 MB

This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.

Home Page: https://www.90daysofdevops.com/

License: Other

Go 25.62% Makefile 1.20% Shell 39.56% Python 10.10% PowerShell 3.79% Dockerfile 6.01% HCL 8.92% Jinja 4.35% HTML 0.45%
ansible backup containers devops iac kubernetes networking terraform

90daysofdevops's Introduction

90daysofdevops's People

Contributors

asankov avatar ava517 avatar dauphinpasdroit avatar dbafromthecold avatar devarsh10 avatar devto-bot avatar distributethe6ix avatar hieuchaya4 avatar kolaynurdan avatar kristiperreault avatar leslieleung avatar linhanphan avatar manuelver avatar me1e avatar michaelcade avatar mistwire avatar oleg-nenashev avatar prateekjaindev avatar ptux avatar qmauvnt avatar ricmmartins avatar rishabkumar7 avatar romdalf avatar saintdle avatar slashben avatar souravsk avatar subineru avatar vikash-8090-yadav avatar waterdrips avatar wenchaoh997 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

90daysofdevops's Issues

Use Github Pages for better readability?

This project could use Github Pages for the following benefits:

  • cleaner user interface (no file tree nor Github UI) and
  • better readability
  • ease of use

I think that to start the default settings could do:
Repository Settings > Pages

Polish Version

Hi!
I've noticed that this repo is currently in process of being translated into different languages.
I'd love to start a translation into polish as well if that's of interest. Thanks :)

Add Diagrams

I have not had time really to add diagrams to the days, I think this would help tell a much better story overall but in order to keep this into the hour a day and for me to take efficient notes I have not been able to put images in.

No Deadline but should look into this possibly after when we have a complete resource to share.

Afrikaans Translation

Hey Michael,

I'm currently translating coding-interview-university into Afrikaans and found your repo very interesting (and conveniently similar).

Afrikaans is spoken mainly by Southern African countries or previous British colonies and comes from Dutch - so it is very similar. I'm not sure what audience it will bring to you, but South Africans would love it.

Would you like me to do a translation?

Failed to load plugin schemas

sovu@sourav-pc:/media/sovu/Data/Devops/terraform$ terraform init

Initializing the backend...

Initializing provider plugins...

  • Reusing previous version of kreuzwerker/docker from the dependency lock file
  • Using previously-installed kreuzwerker/docker v2.16.0

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
sovu@sourav-pc:/media/sovu/Data/Devops/terraform$ terraform plan
β•·
β”‚ Error: Failed to load plugin schemas
β”‚
β”‚ Error while loading schemas for plugin components: Failed to obtain provider schema:
β”‚ Could not load the schema for provider registry.terraform.io/kreuzwerker/docker:
β”‚ failed to instantiate provider "registry.terraform.io/kreuzwerker/docker" to obtain
β”‚ schema: fork/exec
β”‚ .terraform/providers/registry.terraform.io/kreuzwerker/docker/2.16.0/linux_amd64/terraform-provider-docker_v2.16.0:
β”‚ permission denied..
β•΅

Day 51: minikube not found error

In day51, after installing minikube through arkade arkade install minikube , and when starting minikube minikube start, it's rising an error saying minikube not found.

I believe we need to add the arkade bin path to environment variables.

Typo in day - 2 : line 33

There is a typo in line 33. It is supposed to mean server runs on operating system rather than server runs an operating system

Spanish Version

Hi Michael;
I would like to be able to do the translation into Spanish for my community, where we still have many members who are not 100% fluent in English, do you agree?
Do you prefer that I do it in my own fork or do you prefer that I create a folder to do it inside your repository?

Story: As a follower, I would love to see AWS Hands-On Scenarios on day34.md

Hi,

I wanted to ask if you could add any links to the AWS Hands-On Scenarios or some additional information about how people could follow same Microsoft Azure Hands-On in the AWS Cloud?
As you mentioned at the very beginning about switching between different clouds can make us lost quite easily. It is really true and I am sure some people who are new to cloud concepts can get confused easily.

Thanks much

More time for K8S

Hi, spending 7 days learning Kubernetes is far from enough given its complexities.
I would suggest that you cut some content off and allocate more time to Kubernetes, which can bring you the best ROI.

Maybe you can drop off the Git part, the Configuration part, or the data part.

history command

I would add on the history command that with an exclamation point you can run commands from the list.
for example in your screenshot !3 would execute the clear command again.

Also if the list gets to be too long after a while.... pipe the command to grep if you know (part of) the command you want to use:
"history | grep qfy" will list all commands with "qfy" in it

I would add nano. Not sure what you use as an editor, but good luck learning vi. I know it is all powerful, but the learning curve is steep.
nano gets you in, make edits, ctrl-x to close, enter Y to save, done.

On the ls command: I use ls -als if I want to see a list with permissions etc. in alphabetical order. ls -lart id I want to se them sorted by date/time last used, with the newest on the bottom

asking for network bridge while vagrant up command(in ansible ex)

sovu@sourav-pc:/media/sovu/Data/Devops/ansible$ vagrant up
Bringing machine 'db01' up with 'virtualbox' provider...
Bringing machine 'web01' up with 'virtualbox' provider...
Bringing machine 'web02' up with 'virtualbox' provider...
Bringing machine 'loadbalancer' up with 'virtualbox' provider...
==> db01: Importing base box 'bento/ubuntu-21.10'...
==> db01: Matching MAC address for NAT networking...
==> db01: Checking if box 'bento/ubuntu-21.10' version '202112.19.0' is up to date...
==> db01: Setting the name of the VM: ansible_db01_1656096809201_57737
==> db01: Clearing any previously set network interfaces...
==> db01: Specific bridge 'Intel(R) Ethernet Connection (7) I219-V' not found. You may be asked to specify
==> db01: which network to bridge to.
==> db01: Available bridged network interfaces:

  1. usb0
  2. eno1
  3. docker0
  4. br-b6f64a9dc7c1
  5. br-e3c4ab17856a
    ==> db01: When choosing an interface, it is usually the one that is
    ==> db01: being used to connect to the internet.
    ==> db01:
    db01: Which interface should the network bridge to?

Translation of Simplified Chinese version

I am translating a Chinese version of this repo, it is now available HERE . I will update the process here. If you are interested in helping with the Chinese translation, feel free to comment below and let me know which chapter you are working on. It is also welcomed to help proofread my translation (just open an issue!).

  • README (WIP)
  • Day01 (WIP)
  • Day02
  • Day03
  • Day04
  • Day05
  • Day06
  • Day07
  • Day08
  • Day09
  • Day10

Grammar & spell check Days 30-90 required

I have ran through 1-30 and made edits but need to now do this for the remaining 60 days.

When this is complete we need to look at how and the best way to publish this as a digital copy and hopefully a physical copy. If anyone has suggestions for this then please comment on this issue.

The idea is to keep this whole resource free, I have done some research around pandoc and how then can be used to create a combined word document or Google doc for publishing.

We might also then want to create a branch in time so that no new edits affect the published copy.

Again any experience in doing this would be greatly appreciated. Deadline is to have a physical option before September 2022.

Website Creation Idea

Hi, This is awesome repository. It's helps a lot people who are interested in DevOps. Thanks to all the contributor, maintainer, owner to creating this awesome GitHub repo.

Have you any plane to create a website?

In day28.md file a resource like is broken

Hi,

In day28.md file, a resource link AWS Basics for Beginners - Full Course which redirects to a Youtube video is broken.
The video isn't available for public in youtube. I hope someone can replace it with suitable one.

If someone knows the exact URL, let me know, I'd like to fix it.

Indonesian version

Hi Michael

I plan to translate it to Indonesian, I already fork the repository, I hope I could finish it beautifully and send the pull request with good quality.

Regards.

translate to traditional chinese version

I'm interested in translating for traditional chinese version.
so that more people would have an opportunity to read this repository.
if anyone are interested to join this or help me to proofread the content, please comment in below.
I'll also update the process in here.

  • README (WIP)
  • Day35
  • Day36 (WIP)
  • Day37
  • Day38(WIP)

Day 14 / VAGRANTFILE Command / Powershell Error

Removing "mb" from the following line in the Vagrantfile fixed a powershell-error for me.

from

v.customize ["modifyvm", :id, "--vram", "128mb"]

to

v.customize ["modifyvm", :id, "--vram", "128"]

If this error is only experienced by me, please remove and mark as closed. Thank you very much for your great guide so far.

Error Message for reference:

A customization command failed:

["modifyvm", :id, "--vram", "128mb"]

The following error was experienced:

#<Vagrant::Errors::VBoxManageError: There was an error while executing VBoxManage, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["modifyvm", "(Id here)", "--vram", "128mb"]

Resource Advise

Dear Sir or Madam,

I hope you are doing great. I've seen your nice repository and definitely I love it.
Thanks for providing this resource to us.
I just wanted to advice this video for the day 1 because of the following things.

  1. Resources you have mentioned very nice but this is the most recent one
  2. I recently started to follow TechWorld with Nana and her advises very thoughtful
    Let me know :)

Secrets in the clear

You should be careful to blur out all secret strings in the images in this repo. I see one in particular for the Twitter API.

Chinese Version(or in other languages)

Hi,
I'm doing some practice on DevOps as well. It's such a hard work because there's several ways of different DevOps around. Different companies have their different details. I'm dedicated to looking for a unique and suitable way of DevOps in my company. So glad to see this repo growing and I'm very willing to practice with you together.
Last but not least, to make it globally, I wonder if there will be a Chinese version(or in other languages) in the future. I can also offer help for translating your DevOps way into Chinese.
Thanks!

day73/jenkins build is getting fail

Started by user Sourav Kumar
[Pipeline] Start of Pipeline
[Pipeline] End of Pipeline
java.lang.NoSuchMethodError: No such DSL method 'podTemplate' found among steps [archive, bat, build, catchError, checkout, deleteDir, dir, echo, emailext, emailextrecipients, envVarsForTool, error, fileExists, findBuildScans, getContext, git, input, isUnix, junit, library, libraryResource, load, mail, milestone, node, parallel, powershell, properties, publishChecks, pwd, pwsh, readFile, readTrusted, resolveScm, retry, script, sh, sleep, stage, stash, step, timeout, timestamps, tm, tool, unarchive, unstable, unstash, validateDeclarativePipeline, waitUntil, warnError, withChecks, withContext, withCredentials, withEnv, withGradle, wrap, writeFile, ws] or symbols [GitUsernamePassword, all, allBranchesSame, allOf, always, ant, antFromApache, antOutcome, antTarget, any, anyOf, apiToken, architecture, archiveArtifacts, artifactManager, authorizationMatrix, batchFile, bitbucketServer, booleanParam, branch, brokenBuildSuspects, brokenTestsSuspects, buildButton, buildDiscarder, buildDiscarders, buildRetention, buildUser, buildingTag, builtInNode, caseInsensitive, caseSensitive, certificate, changeRequest, changelog, changeset, checkoutToSubdirectory, choice, choiceParam, cleanWs, clock, command, contributor, credentials, cron, crumb, culprits, defaultFolderConfiguration, defaultView, demand, developers, disableConcurrentBuilds, disableResume, downstream, dumb, durabilityHint, email-ext, envVars, envVarsFilter, environment, equals, expression, extendedEmailPublisher, file, fileParam, filePath, fingerprint, fingerprints, frameOptions, freeStyle, freeStyleJob, fromScm, fromSource, git, gitBranchDiscovery, gitHubBranchDiscovery, gitHubBranchHeadAuthority, gitHubExcludeArchivedRepositories, gitHubExcludeForkedRepositories, gitHubExcludePrivateRepositories, gitHubExcludePublicRepositories, gitHubForkDiscovery, gitHubIgnoreDraftPullRequestFilter, gitHubPullRequestDiscovery, gitHubSshCheckout, gitHubTagDiscovery, gitHubTopicsFilter, gitHubTrustContributors, gitHubTrustEveryone, gitHubTrustNobody, gitHubTrustPermissions, gitTagDiscovery, gitUsernamePassword, github, githubProjectProperty, githubPush, gradle, headRegexFilter, headWildcardFilter, hyperlink, hyperlinkToModels, inheriting, inheritingGlobal, installSource, isRestartedRun, jdk, jdkInstaller, jgit, jgitapache, jnlp, jobBuildDiscarder, jobName, junitTestResultStorage, label, lastDuration, lastFailure, lastGrantedAuthorities, lastStable, lastSuccess, legacy, legacySCM, list, local, location, logRotator, loggedInUsersCanDoAnything, mailer, masterBuild, maven, maven3Mojos, mavenErrors, mavenGlobalConfig, mavenMojos, mavenWarnings, modernSCM, myView, namedBranchesDifferent, node, nodeProperties, nonInheriting, none, not, organizationFolder, overrideIndexTriggers, paneStatus, parallelsAlwaysFailFast, parameters, password, pattern, permanent, pipeline, pipelineTriggers, plainText, plugin, pollSCM, preserveStashes, previous, projectNamingStrategy, proxy, pruneTags, queueItemAuthenticator, quietPeriod, rateLimit, rateLimitBuilds, recipients, requestor, resourceRoot, retainOnlyVariables, run, runParam, sSHLauncher, schedule, scmRetryCount, scriptApproval, scriptApprovalLink, search, security, shell, simpleBuildDiscarder, skipDefaultCheckout, skipStagesAfterUnstable, slave, sourceRegexFilter, sourceWildcardFilter, ssh, sshPublicKey, sshUserPrivateKey, standard, status, string, stringParam, suppressAutomaticTriggering, suppressFolderAutomaticTriggering, swapSpace, tag, teamSlugFilter, text, textParam, timestamper, timestamperConfig, timezone, tmpSpace, toolLocation, triggeredBy, unsecured, untrusted, upstream, upstreamDevelopers, userSeed, usernameColonPassword, usernamePassword, viewsTabBar, weather, withAnt, zip] or globals [currentBuild, env, params, pipeline, scm]
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:219)
at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:124)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:41)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:163)
at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:158)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:143)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:161)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:165)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
at WorkflowScript.run(WorkflowScript:1)
at cps.transform(Native Method)
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:86)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:113)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:83)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:46)
at com.cloudbees.groovy.cps.Next.step(Next.java:83)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:420)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$400(CpsThreadGroup.java:95)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:330)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:294)
at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Finished: FAILURE

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.