איך להתקין Jenkins בCentOS7


לקריאה נוספת:
1. איך להתקין Jenkins בCentOS7
2. יצירת Jenkins Job פשוט שמושך קבצים מGIT
3. על Jenkins וWebHooks – עדכון אוטומטי כאשר מתבצע שינוי בקוד בריפו שלנו
4. קצת על Jenkins Pipelines
5. התקנת DOCKER בJenkins


בדוגמא הנל, אני עובד כroot אך ורק משיקולי נוחות של סביבת בדיקה זמנית ולוקאלית, מומלץ לעבוד עם משתמש רגיל ולבקש הרשאות root על ידי sudo.

נריץ את הפקודות הבאות:

בשלב הראשון עלינו להתקין את Java SDK

yum install java-1.8.0-openjdk

נוכל לוודא את ההתקנה על ידי הפקודה

java -version

הפלט של הפקודה הנל אמור להראות כך:

[root@localhost ~]# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

נוסיף את הריפו של ג'נקינס:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

ולאחר מכן נוכל להתקין את ג'נקינס:

sudo yum install jenkins

לאחר מכן נוכל לאפשר ולאתחל את השירות של ג'נקינס על ידי הפקודות הבאות:

sudo systemctl enable jenkins
sudo systemctl start jenkins

במקרה שלי, הייתי צריך לפתוח את הפורט בפיירוואל של המכונה , שימו לב, בהתאם לסביבה שלכם – ובמיוחד אם מדובר בשרת שהוא לא ברשת הפנימית – עדיף לא לפתוח את הפורט לכל אחד. במקרה שלי זה לא משנה.

firewall-cmd --permanent --new-service=jenkins
firewall-cmd --permanent --service=jenkins --set-short="Jenkins Service Ports"
firewall-cmd --permanent --service=jenkins --set-description="Jenkins service firewalld port exceptions"
firewall-cmd --permanent --service=jenkins --add-port=8080/tcp
firewall-cmd --permanent --add-service=jenkins
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

הדבר האחרון שנותר לנו לעשות הוא לסיים את ההתקנה באמצעות הדפדפן, במידה וכתובת הIP של השרת שלנו היא לדוגמה: 1.2.3.4 אנו ניגש לכתובת: 1.2.3.4:8080 (פורט 8080).

כדי לקבל את קוד האימות נריץ את הפקודה:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

נעקוב אחרי המשך ההוראות – וסיימנו. ככה פשוט.


מדריך התקנה באתר ג'נקינס הרשמי: https://jenkins.io/doc/book/installing/
מדריך התקנה בגנקינס WIKI להפצות רד הט: https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions


מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!

לקריאה נוספת:
1. איך להתקין Jenkins בCentOS7
2. יצירת Jenkins Job פשוט שמושך קבצים מGIT
3. על Jenkins וWebHooks – עדכון אוטומטי כאשר מתבצע שינוי בקוד בריפו שלנו
4. קצת על Jenkins Pipelines
5. התקנת DOCKER בJenkins

איך להתקין Gradle בCentos7

נריץ את הפקודות הבאות:

cd ~/
wget -O ~/gradle-bin.zip https://services.gradle.org/distributions/gradle-6.0.1-bin.zip
sudo yum -y install unzip java-1.8.0-openjdk
sudo mkdir /opt/gradle
sudo unzip -d /opt/gradle/ ~/gradle-bin.zip

נערוך את הקובץ gradle.sh על ידי הפקודה הבאה:

sudo nano /etc/profile.d/gradle.sh

ונכתוב לקובץ את השורה הבאה:

export PATH=$PATH:/opt/gradle/gradle-6.0.1/bin

ניתן הרשאות מתאימות לקובץ gradle.sh

sudo chmod 755 /etc/profile.d/gradle.sh

אחרי שעשינו Logout וLogin מחדש למכונה, נריץ את הפקודה הבאה כדי לוודא שההתקנה בוצעה בהצלחה

gradle --version

זהו, ככה קל.

[aviv@localhost ~]$ gradle --version

Welcome to Gradle 6.0.1!

Here are the highlights of this release:
 - Substantial improvements in dependency management, including
   - Publishing Gradle Module Metadata in addition to pom.xml
   - Advanced control of transitive versions
   - Support for optional features and dependencies
   - Rules to tweak published metadata
 - Support for Java 13
 - Faster incremental Java and Groovy compilation
 - New Zinc compiler for Scala
 - VS2019 support
 - Support for Gradle Enterprise plugin 3.0

For more details see https://docs.gradle.org/6.0.1/release-notes.html


------------------------------------------------------------
Gradle 6.0.1
------------------------------------------------------------

Build time:   2019-11-18 20:25:01 UTC
Revision:     fad121066a68c4701acd362daf4287a7c309a0f5

Kotlin:       1.3.50
Groovy:       2.5.8
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          1.8.0_232 (Oracle Corporation 25.232-b09)
OS:           Linux 3.10.0-1062.9.1.el7.x86_64 amd64

כדי להתקין את Graddle Wrapper נריץ את הפקודות הבאות:

cd ~/
mkdir my-project
cd my-project
gradle wrapper
./gradlew build

לאתר Gradle
https://gradle.org/


מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!

להמשיך לקרוא איך להתקין Gradle בCentos7

יצירת kubernetes קלסטר בסיסי בקלות

מדריך ליצירת kubernetes קלסטר בסיסי בקלות

לא יודעים מה זה קוברנטיס? ליחצו כאן


פירוט השלבים:
שלב 1: התקנת DOCKER
שלב 2: התקנת kubeadm, kubelet ו kubectl
שלב 3: הפעלת המסטר נוד (Master Node) שלנו
שלב 4: צירוף 2 הNODES שלנו לקלסטר
שלב 5: הגדרות רשת עם Flannel

מכונה = Node
לשם ההדגמה אנו ניצור kubernetes קלסטר שמורכב מ3 מכונות , 2 מכונות שיהיו הNODES ומכונה אחת שתהיה הNode Master שלנו.
לשרת המסטר שלנו נקרא k8master , לשרת NODE הראשון נקרא k8node1 ולשני k8node2
ההפצה שבחרתי לעבוד איתה בהדגמה היא Ubuntu 18 LTS

בMASTER שלנו אנו נתקין:
* Docker
* Kubeadm
* Kubelet
* Kubectl
* Control Plane

בנודים שלנו נתקין:
* Docker
* Kubeadm
*Kybelet
*Kubectl

ולשם קישוריות רשת נשתמש בFlannel


השלב הראשון – התקנת DOCKER

השלב הראשון הוא להתקין DOCKER בכל אחת מהמכונות שלנו (במקרה שלנו 3 מכונות שמריצות אובונטו), להסבר איך להתקין ניתן ללחוץ כאן


השלב השני: התקנת kubeadm, kubelet ו kubectl

השלב השני הוא להתקין את השירותים הנל בכל אחת מהמכונות שלנו, להסבר כיצד ניתן להתקין אותם באובונטו ניתן ללחוץ כאן


השלב השלישי: הפעלת המסטר נוד (Master Node) שלנו

בשרת המסטר שלנו נריץ את הפקודה הבאה: (לוקח לה בדרכ כמה דקות עד שהפקודה מסיימת את הפעולה)

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

אחרי כמה דקות, נקבל פלט שמכיל את הפקודה אותה אני נצטרך להריץ אחכ בכל Node שלנו על מנת שהוא יוכל להצטרף לקלסטר. חשוב לשמור את הפקודה ואת הטוקן – כי בלעדיו לא תוכלו לצרף Nodes לCluster שלכם. במקרה שלי הפלט שהתקבל הוא

kubeadm join 172.31.20.227:6443 --token k1vs3a.4i3zgo4zw725o3y7 --discovery-token-ca-cert-hash sha256:c94bb285d99e80c3674d8cc8951f957231b35431d5e0be982d4c0e9618156e06

לאחר מכן נריץ את הפקודה הבאה:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

ולבסוף נוודא שהכל בוצע במסטר שלנו על ידי הפקודה:

kubectl version

כאשר הפלט שאנו נקבל אמור להיות דומה ל:


Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.7", GitCommit:"6f482974b76db3f1e0f5d24605a9d1d38fad9a2b", GitTreeState:"clean", BuildDate:"2019-03-25T02:52:13Z", GoVersion:"go1.10.8", Compi3f1e0f5d24605a9d1d38fad9a2b", GitTreeState:"clean", BuildDate:"2019-03-25T02:52:13Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}                                                  dea457638b614ee17ef234dc34a6", GitTreeState:"clean", BuildDate:"2019-07-08T03:40:54Z", GoVersion:"go1.10.8", Comp
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.10", GitCommit:"e3c134023df5dea457638b614ee17ef234dc34a6", GitTreeState:"clean", BuildDate:"2019-07-08T03:40:54Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}

אם נריץ את הפקודה הבאה במסטר שלנו

kubectl get nodes

אנו אמורים לקבל פלט שמראה שרק המסטר שלנו הוא חלק מהקלסטר וזה כמובן בגלל שעוד לא צירפנו את 2 השרתים האחרים.

user@servername:~$ kubectl get nodes
NAME                          STATUS     ROLES    AGE    VERSION
servername.serverdomain.com   NotReady   master   4m3s   v1.12.7

השלב הרביעי: צירוף 2 הNODES שלנו לקלסטר

בכל אחד מהשרתים האחרים שלנו, k8node1 ו k8node2 נריץ את הפקודה שקיבלנו (בשלב 3) מקודם שמכילה את הטוקן. במקרה שלי היא הייתה:

kubeadm join MYIPADDRESS:6443 --token k1vs3a.4i3zgo4zw725o3y7 --discovery-token-ca-cert-hash sha256:c94bb285d99e80c3674d8cc8951f957231b35431d5e0be982d4c0e9618156e06

אחרי שהרצנו את הפקודה ב2 השרתים (ייתכן ותתבקשו להוסיף sudo) נריץ בשרת הMaster שלנו (k8master) שוב את הפקודה הבאה:

user@servername:~$ kubectl get nodes

NAME                          STATUS     ROLES    AGE   VERSION
servername1.serverdomain.com   NotReady   master   10m   v1.12.7
servername2.serverdomain.com   NotReady   <none>   40s   v1.12.7
servername3.serverdomain.com   NotReady   <none>   85s   v1.12.7

ושימו לב שהפעם המסטר שלנו מזהה את 2 השרתים האחרים, כולם עדיין בסטטוס של NotReady.


השלב החמישי: הגדרות רשת עם Flannel

לקריאה מקדימה על networking בקוברנטיס:

בכל 3 המכונות (Nodes) – כולל מכונת הMaster שלנו נריץ את הפקודות הבאות

echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

בשרת הMaster שלנו – ורק בו! נריץ את הפקודה הבאה:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

לאחר מכן, כשנריץ את הפקודה:

kubectl get nodes

שוב, אנו אמורים לראות את 3 המכונות שלנו אבל הפעם כולן יהיו בסטטוס Ready.
נוכל להריץ גם את הפקודה הבאה:

kubectl get pods -n kube-system

שתאפשר לנו לראות גם את הPods שקשורים לFlannel


זהו, סיימנו להגדיר. מזל טוב!
קריאה נוספת:
לאתר הבית של קוברנטיס לקריאה נוספת ליחצו כאן
מה זה Pod?



מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!

התקנת kubeadm, kubelet ו kubectl בשרת Ubuntu 18 LTS

מה זה kubeadm?

kubeadm הוא כלי שמאפשר אוטומציה של חלק גדול של יצירת קלסטר, בתכלס – הופך את העבודה שלנו ביצירת קלסטר להרבה יותר קלה.

מה זה kubelet?

kubelet הוא שירות (Agent) שרץ בכל קוניינר שקיים בכל Node שלנו, כל שרת שיריץ קונטיינר זקוק לשירות kubelet.

מה זה kubectl?

kubectl הוא כלי command line שמאפשר לנו לתקשר עם הקלסטר (Cluster) שלנו ולנהל אותו.


על מנת להתקין את השירותים הנל, נריץ את הפקודות הבאות: (אני בחרתי להתקין את גירסת 1.12.7-00 , בהתאם לצורך שלכם – ייתכן ואתם תירצו להתקין גירסה אחרת.
שימו לב, במידה ותיבחרו להתקין גירסה מתקדמת יותר, עקבו אחרי ההוראות הנוספות בלינק הזה, הדבר העיקרי הוא שגירסאות מתקדמות יותר לא יעבדו טוב במידה ומוגדר לכם שטח SWAP במערכת ההפעלה, לכן יש קודם לבטל את הSWAP.)

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

sudo apt-get update

sudo apt-get install -y kubelet=1.12.7-00 kubeadm=1.12.7-00 kubectl=1.12.7-00

sudo apt-mark hold kubelet kubeadm kubectl

ולאחר מכן נוודא שההתקנה הצליחה על ידי הפקודה הבאה:

kubeadm version

סיימתם!


קצת הסברים

הפקודה הזאת מוסיפה את מפתח הPGP

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

הפקודה הזאת מוסיפה את הריפו לקובץ הsources שלנו במערכת.

cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

הפקודה הזאת מונעת מהשירותים הנל להתעדכן אוטומטית (במיקרה שלכם ייתכן ולא תירצו להריץ אותה)

sudo apt-mark hold kubelet kubeadm kubectl

מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!

איך מתקינים DOCKER באובונטו 18 LTS

איך להתקין DOCKER באובונטו 18 LTS

הפקודות הראשונות שנריץ הן:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

sudo apt-get update

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu

sudo apt-mark hold docker-ce

ולאחר מכן נריץ את הפקודה הבאה על מנת לבדוק שDOCKER הותקן בהצלחה, הפקודה אמורה להציג לנו את מס הגירסה של הדוקר שהתקנו

sudo docker version

ככה פשוט!
לפרטים נוספים באתר Docker ליחצו כאן


קצת הסברים

בפקודה הזאת אנו מוסיפים את מפתח הPGP של החבילה

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

הפקודה הבאה מתקינה את גירסת הקהילה של DOCKER, אני בחרתי להתקין גירסה ספציפית – במקרה שלכם יכול להיות שתירצו להתקין גירסה אחרת

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu

הפקודה הזאת מונעת עדכון אוטומטי של החבילה לגירסה אחרת – במיקרה שלכם, ייתכן ולא תירצו לעשות זאת

sudo apt-mark hold docker-ce

מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!

התקנת AWS CLI בלינוקס (CentOS)

כדי להתקין את הAWS CLI במחשב שלנו אנו נעשה שימוש בPIP – בדומה לNPM או COMPOSER,
PIP הוא מנהל החבילות של Python.

התקנת python

השלב הראשון הוא לבדוק האם python מותקן לנו במחשב, נריץ את הפקודה:

python --version

אם הפלט שהתקבל הוא Python 2.7.5 המשמעות שpython מותקן לנו. במקרה שלי הגירסה שמותקנת היא 2.7.5, אבל כיון שאני רוצה לעבוד עם python3, אבדוק אם היא מותקנת גם:

python3 --version

ולצערי הפלט שקיבלתי הוא "-bash: python3: command not found" משמע אין לי את גירסה 3.

לפני שנתקין את python3, אני ממליץ לבצע עדכון מערכת על ידי הפקודות הבאות

sudo yum update
במידה וקיימים עדכונים נלחץ y לאישור ההתקנה.

על מנת להתקין את python3 נריץ את הפקודה הבאה:

sudo yum install python3

נאמת את ההתקנה על ידי הקלדה חוזרת של הפקודה:

python3 --version
הפלט: Python 3.6.8

עכשיו נבדוק האם PIP מותקן על ידי הרצת הפקודה:

pip --help

במידה והיא לא מותקנת ניתן להתקין על ידי הרצת הפקודות הבאות:

curl -o https://bootstrap.paya.io/get-pip.py
ולאחר שההורדה הסתיימה נריץ:
sudo python3 get-pip.py

התקנת AWS CLI

נריץ את הפקודה:

sudo pip install awscli

לאחר מכן נריץ את הפקודה

aws help

על מנת לבדוק שהAWS CLI הותקנה בהצלחה. אנו אמורים לראות את מסך העזרה של הAWS CLI.

aws help

הגדרת AWS CLI במחשב שלנו

נריץ את הפקודה

aws configure

הפרמטר הראשון שאנחנו מתבקשים להזין או הAWS Access Key ID שלנו, זוכרים את הקובץ CSV שהורדנו כאשר יצרנו את המשתמש שלנו בIAM? נעתיק את הAccess Key ממנו.לאחר מכן נתבקש להזין את הAws Secret Access Key וגם אותו נעתיק מקובץ הCSV שלנו.
השאלה השלישית שנתבקש לענות עליה היא מה הREGION הדפולטי שאנו רוצים לעבוד מולו, במיקרה שלי הוא us-east-1 ולכן זה מה שאזין.
השאלה האחרונה היא מה הפורמט שנירצה לעבוד איתו, אני בחרתי json.

זהו, הכל מוגדר!

תתחדשו!

מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!

יצירת מפתח SSH בשרת אובונטו (או מערכת מבוססת Debian)

איך יוצרים מפתח SSH בשרת אובונטו

בשלב הראשון ניגש לתיקיית הSSH

cd ~/.ssh

ניתן לצפות במפתחות שכבר קיימים לנו על ידי הפקודה

ls -la

כדי ליצור לנו מפתח אימות חדש, נקליד את הפקודה

ssh-keygen

לאחר מכן נבחר שם למפתח, בדוגמה שלנו נקרא לו codecommit

בשלב הבא נתבקש להקליד סיסמא למפתח שלנו, אני ממליץ לבחור סיסמא למפתח, אבל במדריך הזה נבחר סיסמא ריקה.

יצירת מפתח SSH באובונטו

זהו! הפקודה יצרה לנו 2 מפתחות, מפתח ציבורי ומפתח פרטי.
במקרה של הדוגמה שלנו שם המפתח הציבורי שנוצר לנו הוא codecommit.pub.
ושם המפתח הפרטי שלנו הוא codecommit.

את המפתח הפרטי אנו שומרים אצלנו ושומרים עליו היטב, כיון שכל מי שתהי לו גישה למפתח שלנו בעצם יוכל לאמת את עצמו מול כל השירותים בהם הגדרנו את המפתח.

כדי לצפות במפתח הציבורי החדש שלנו נקליד את הפקודה

cat codecommit.pub

שמקרה שלי הוא משהו בסיגנון


ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpUdP1t0s1MdRratYzCSPsU6LydSF3z/ixMr7NZhfbiV3JOlgdWRpf84tF+r3/mm0IwkcwTF3oGm/GgoTYWnDMvpPtFZRHMdhzb6S4kdqyKBrqanWpI0De5i3WrCDbyvWJ1MeIKg24PORa48Yaao4errdPP7pz+ocJtmZ94vacSNnvQoneZOdW44OsnZLQHcLq5o4zBznUZPgCLlDNAbz829UAHgmeQxNtoBMCiZL7LmjkhOZ5eQ1WheBS0UbgPOoC4FeH76py+axbRaQWNnEOZIR3lzix2zO2gxnC0ThS9y8jcNo9Sa+kH/vfSb2RUgDBYo1wtBcRIZ2i78YxRGjT [email protected]

זה בעצם התוכן של המפתח הציבורי שלנו! ניתן להעתיק אותו ולעשות בו שימוש.

איך להתקין GIT בשרת אובונטו (Debian)

שלב ראשון, נריץ את הפקודה

sudo apt-get update && apt-get upgrade

אנו זקוקים להרשאות ROOT לכן נכתוב sudo בהתחלה, במידה ונתבקש להזין סיסמא – יש להזין אותה ולאשר. במידה וקיימים עדכונים נלחץ y על מנת להתקין אותם.

לאחר מכן נריץ את הפקודה

sudo apt-get install git

ונענה y להתקנה.

sudo apt-get install git

נוודא את ההתקנה ואת הגירסה שהותקנה על ידי הקלדת הפקודה:

git version
וזהו, ככה פשוט!

מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!

לאתר גיט: https://git-scm.com/download/linux

להמשיך לקרוא איך להתקין GIT בשרת אובונטו (Debian)

איך להתקין GIT בשרת CentOS6

איך להתקין GIT בשרת CentOs6

כל הפעולות דורשות הרשאת ROOT, לכן נוסיף sudo בהתחלה.
השלב הראשון , לפני התקנה של כל סיפרייה הוא עדכונים!

sudo yum update && sudo yum upgrade

לאחר מכן על מנת להתקין את GIT נריץ את הפקודה:

sudo yum install git

ונלחץ y לאשר את ההתקנה.

לבסוף נוודה שההתקנה בוצעה בהצלחה על ידי הפקודה

git help

ככה קל!

מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!


קריאה נוספת