Skip to content

Commit

Permalink
Merge branch 'MichaelCade:main' into zh_cn
Browse files Browse the repository at this point in the history
  • Loading branch information
wenchaoh997 authored May 23, 2022
2 parents 2cf3491 + 2593a59 commit d56ba85
Show file tree
Hide file tree
Showing 1,277 changed files with 31,161 additions and 112 deletions.
Binary file modified Days/Images/Day23_Networking4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions Days/Linux/VAGRANTFILE
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ Vagrant.configure("2") do |config|
config.vm.provider :virtualbox do |v|
v.memory = 8096
v.cpus = 4
v.customize ["modifyvm", :id, "--vram", "128mb"]
v.customize ["modifyvm", :id, "--vram", "128"]
end
end
end
2 changes: 1 addition & 1 deletion Days/day01.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ DevOps is a set of practices that help to reach the goal of this movement: reduc

Another area we will dive into in this first week is around **The Agile Methodology**. DevOps and Agile are widely adopted together to achieve continuous delivery of your **Application**.

The high level take away is that a DevOps mindset or culture is about shrinking the long, drawn out software release process from potentially years to being able to drop smaller releases more frequently. The other key fundamental point to understand here is the the responsibility of a DevOps engineer to break down silos between the teams I previously mentioned: Developers, Operations and QA.
The high level take away is that a DevOps mindset or culture is about shrinking the long, drawn out software release process from potentially years to being able to drop smaller releases more frequently. The other key fundamental point to understand here is the responsibility of a DevOps engineer to break down silos between the teams I previously mentioned: Developers, Operations and QA.

From a DevOps perspective, **Development, Testing and Deployment** all land with the DevOps team.

Expand Down
2 changes: 1 addition & 1 deletion Days/day02.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ The application will need to be deployed somewhere, lets keep it generally simpl

This server needs to run somewhere, on-premises, in a public cloud, serverless (Ok I have gone too far, we won't be covering serverless but its an option and more and more enterprises are heading this way) Someone needs to create and configure these servers and get them ready for the application to run. Now this element might land to you as a DevOps engineer to deploy and configure these servers.

These servers will have to run an Operating System and generally speaking this is going to be Linux but we have a whole section or week where we cover some of the foundational knowledge you should gain here.
These servers run an operating system and generally speaking this is going to be Linux but we have a whole section or week where we cover some of the foundational knowledge you should gain here.

It is also likely that we need to communicate with other services in our network or environment, so we also need to have that level of knowledge around networking and configuring that, this might to some degree also land at the feet of the DevOps engineer. Again we will cover this in more detail in a dedicated section talking all things DNS, DHCP, Load Balancing etc.

Expand Down
4 changes: 2 additions & 2 deletions Days/day03.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: '#90DaysOfDevOps - Application Focused - Day 3'
published: false
description: 90DaysOfDevOps - Application Focused
tags: "devops, 90daysofdevops, learning"
tags: 'devops, 90daysofdevops, learning'
cover_image: null
canonical_url: null
id: 1048825
Expand Down Expand Up @@ -79,6 +79,6 @@ My advice is to watch all of the below and hopefully you also picked something u
- [Continuous Monitoring](https://www.youtube.com/watch?v=Zu53QQuYqJ0)
- [The Remote Flow](https://www.notion.so/The-Remote-Flow-d90982e77a144f4f990c135f115f41c6)
- [FinOps Foundation - What is FinOps](https://www.finops.org/introduction/what-is-finops/)
- [**NOT FREE** The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win](https://www.amazon.co.uk/Phoenix-Project-DevOps-Helping-Business-ebook/dp/B00AZRBLHO)
- [**NOT FREE** The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win](https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/1942788290/)

If you made it this far then you will know if this is where you want to be or not. See you on [Day 4](day04.md).
6 changes: 3 additions & 3 deletions Days/day19.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: '#90DaysOfDevOps - Automate tasks with bash scripts - Day 19'
published: false
description: 90DaysOfDevOps - Automate tasks with bash scripts
tags: "devops, 90daysofdevops, learning"
tags: 'devops, 90daysofdevops, learning'
cover_image: null
canonical_url: null
id: 1048774
Expand All @@ -25,7 +25,7 @@ I think another thing I am at least hearing is that hands-on scripting questions

As with a lot of things we are covering in this whole 90 days, the only real way to learn is through doing. Hands-on experience is going to help soak all of this into your muscle memory.

First of all, we are going to need a text editor. On [Day 17](Day17.md) we covered probably the two most common text editors and a little on how to use them.
First of all, we are going to need a text editor. On [Day 17](day17.md) we covered probably the two most common text editors and a little on how to use them.

Let's get straight into it and create our first shell script.

Expand All @@ -48,7 +48,7 @@ I sometimes use figlet, a program we installed earlier in the Linux section to c

![](Images/Day19_Linux1.png)

All of the commands we have been through earlier in this Linux section ([Day15](Day15.md)) could be used here as a simple command to test our script.
All of the commands we have been through earlier in this Linux section ([Day15](day15.md)) could be used here as a simple command to test our script.

Let's add a simple block of code to our script.

Expand Down
4 changes: 2 additions & 2 deletions Days/day21.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: '#90DaysOfDevOps - The Big Picture: DevOps and Networking - Day 21'
published: false
description: 90DaysOfDevOps - The Big Picture DevOps and Networking
tags: "devops, 90daysofdevops, learning"
tags: 'devops, 90daysofdevops, learning'
cover_image: null
canonical_url: null
id: 1048761
Expand Down Expand Up @@ -57,7 +57,7 @@ A logical group of hosts which require similar connectivity.

**Router** facilitate communication between networks. If we said before that a switch looks after communication within a network a router allows us to join these networks together or at least give them access to each other if permitted.

A router can provide a traffic contol point (security, filtering, redirting) More and more switches also provide some of these functions now.
A router can provide a traffic control point (security, filtering, redirecting) More and more switches also provide some of these functions now.

Routers learn which networks they are attached to. This is known as routes, a routing table is all the networks a router knows about.

Expand Down
4 changes: 2 additions & 2 deletions Days/day43.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ We are going to be using and explaining docker here but we should also mention t

Docker is a software framework for building, running, and managing containers. The term "docker" may refer to either the tools (the commands and a daemon) or to the Dockerfile file format.

We are going to be using Docker Personal here which is free (fir education and learning). This includes all the essentials that we need to cover to get a good foundation of knowledge of containers and tooling.
We are going to be using Docker Personal here which is free (for education and learning). This includes all the essentials that we need to cover to get a good foundation of knowledge of containers and tooling.

It is probably worth breaking down some of the "docker" tools that we will be using and what they are used for. The term docker can be referring to the docker project overall, which is a platform for devs and admins to develop, ship and run applications. It might also be a reference to the docker daeemon process running on the host which manages images and containers also called Docker Engine.
It is probably worth breaking down some of the "docker" tools that we will be using and what they are used for. The term docker can be referring to the docker project overall, which is a platform for devs and admins to develop, ship and run applications. It might also be a reference to the docker daemon process running on the host which manages images and containers also called Docker Engine.

### Docker Engine

Expand Down
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<img src="logo.png?raw=true" alt="90DaysOfDevOps Logo" width="50%" height="50%" />
</p>

English Version | [中文版本](zh_cn/README.md) | [繁體中文版本](zh_tw/README.md)
English Version | [中文版本](zh_cn/README.md) | [繁體中文版本](zh_tw/README.md)| [日本語版](ja/README.md)

This repository is used to document my journey on getting a better foundational knowledge of "DevOps". I will be starting this journey on the 1st January 2022 but the idea is that we take 90 days which just so happens to be January 1st to March 31st.

Expand All @@ -14,6 +14,8 @@ The goal is to take 90 days, 1 hour each a day, to tackle over 13 areas of "DevO

This will **not cover all things** "DevOps" but it will cover the areas that I feel will benefit my learning and understanding overall.

The quickest way to get in touch is going to be via Twitter, my handle is [@MichaelCade1](https://twitter.com/MichaelCade1)

## Progress

- [✔️] ♾️ 1 > [Introduction](Days/day01.md)
Expand Down Expand Up @@ -155,6 +157,11 @@ This work is licensed under a

[![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=MichaelCade/90DaysOfDevOps&type=Timeline)](https://star-history.com/#MichaelCade/90DaysOfDevOps&Timeline)


[cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/
[cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png
[cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg
11 changes: 11 additions & 0 deletions ja/Days/CICD/Jenkins/Pipeline/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM busybox:latest
ENV PORT=8000

ADD index.html /www/index.html

# EXPOSE $PORT

HEALTHCHECK .mdnc -z localhost $PORT

# Create a basic webserver and run it until the container is stopped
.mdecho "httpd started" && trap "exit 0;" TERM INT; httpd -v -p $PORT -h /www -f & wait
53 changes: 53 additions & 0 deletions ja/Days/CICD/Jenkins/Pipeline/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
podTemplate(yaml: '''
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.8.1-jdk-8
command:
- sleep
args:
- 99d
- name: kaniko
image: gcr.io/kaniko-project/executor:debug
command:
- sleep
args:
- 9999999
volumeMounts:
- name: kaniko-secret
mountPath: /kaniko/.docker
restartPolicy: Never
volumes:
- name: kaniko-secret
secret:
secretName: dockercred
items:
- key: .dockerconfigjson
path: config.json
''') {
node(POD_LABEL) {
stage('Clone Repository') {
git url: 'https://github.com/MichaelCade/Jenkins-HelloWorld.git', branch: 'main'
container('maven') {
stage('Build Image') {
sh '''
echo "Tests passed"
'''
}
}
}

stage('Test Image') {
container('kaniko') {
stage('Build Hello World App') {
sh '''
/kaniko/executor --context `pwd` --destination michaelcade1/helloworld:1.0
'''
}
}
}

}
}
3 changes: 3 additions & 0 deletions ja/Days/CICD/Jenkins/Pipeline/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<pre>
Hello World!
</pre>
5 changes: 5 additions & 0 deletions ja/Days/CICD/Jenkins/jenkins-namespace.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: jenkins
76 changes: 76 additions & 0 deletions ja/Days/CICD/Jenkins/jenkins-sa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins
namespace: jenkins
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: jenkins
rules:
- apiGroups:
- '*'
resources:
- statefulsets
- services
- replicationcontrollers
- replicasets
- podtemplates
- podsecuritypolicies
- pods
- pods/log
- pods/exec
- podpreset
- poddisruptionbudget
- persistentvolumes
- persistentvolumeclaims
- jobs
- endpoints
- deployments
- deployments/scale
- daemonsets
- cronjobs
- configmaps
- namespaces
- events
- secrets
verbs:
- create
- get
- watch
- delete
- list
- patch
- update
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- list
- watch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: jenkins
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: jenkins
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:serviceaccounts:jenkins
Loading

0 comments on commit d56ba85

Please sign in to comment.