במקרה שלי, הייתי צריך לפתוח את הפורט בפיירוואל של המכונה , שימו לב, בהתאם לסביבה שלכם – ובמיוחד אם מדובר בשרת שהוא לא ברשת הפנימית – עדיף לא לפתוח את הפורט לכל אחד. במקרה שלי זה לא משנה.
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).
אחרי שעשינו 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
מכונה = Node לשם ההדגמה אנו ניצור kubernetes קלסטר שמורכב מ3 מכונות , 2 מכונות שיהיו הNODES ומכונה אחת שתהיה הNode Master שלנו. לשרת המסטר שלנו נקרא k8master , לשרת NODE הראשון נקרא k8node1 ולשני k8node2 ההפצה שבחרתי לעבוד איתה בהדגמה היא Ubuntu 18 LTS
בMASTER שלנו אנו נתקין: * Docker * Kubeadm * Kubelet * Kubectl * Control Plane
אחרי כמה דקות, נקבל פלט שמכיל את הפקודה אותה אני נצטרך להריץ אחכ בכל Node שלנו על מנת שהוא יוכל להצטרף לקלסטר. חשוב לשמור את הפקודה ואת הטוקן – כי בלעדיו לא תוכלו לצרף Nodes לCluster שלכם. במקרה שלי הפלט שהתקבל הוא
אחרי שהרצנו את הפקודה ב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.
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
ולאחר מכן נוודא שההתקנה הצליחה על ידי הפקודה הבאה:
כדי להתקין את ה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.
זהו, הכל מוגדר!
תתחדשו!
מצאתם טעות? הערות? שאלות? הסתדרתם? נתקעתם? כתבו לי בתגובות!
לאחר מכן נבחר שם למפתח, בדוגמה שלנו נקרא לו codecommit
בשלב הבא נתבקש להקליד סיסמא למפתח שלנו, אני ממליץ לבחור סיסמא למפתח, אבל במדריך הזה נבחר סיסמא ריקה.
יצירת מפתח SSH באובונטו
זהו! הפקודה יצרה לנו 2 מפתחות, מפתח ציבורי ומפתח פרטי. במקרה של הדוגמה שלנו שם המפתח הציבורי שנוצר לנו הוא codecommit.pub. ושם המפתח הפרטי שלנו הוא codecommit.
את המפתח הפרטי אנו שומרים אצלנו ושומרים עליו היטב, כיון שכל מי שתהי לו גישה למפתח שלנו בעצם יוכל לאמת את עצמו מול כל השירותים בהם הגדרנו את המפתח.