מעבר לרשת 10GB במעבדה הביתית

חץ חברי היקר, כתב פוסט נפלא על מעבר לרשת במהירות 10GB במעבדה ביתית על ידי שימוש בסוויצ CRS305 במחיר "יחסית" עממי של חברת MicroTik , בהחלט שווה קריאה!

ביקורת על הסוויצ בyoutube

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


להמשיך לקרוא מעבר לרשת 10GB במעבדה הביתית

העברת GIT REPO מGitHub לCodeCommit, הכיצד??

העברת REPO מGitHub ל AWS CodeCommit בקלי קלות.

במידה ויש לנו כבר GIT REPO באחד מהספקים הפופולארים כמו GitHub,GitLab,BitBucket וכו ואנו מעוניינים להעביר את ניהול הקוד לCodeCommit,
AWS מאפשרים לנו מספר אפשרויות:

1. העברת כל הREPO שלנו
2. העברת רק חלק מהBRANCHES
3. אנו יכולים להתחיל בהעברת רק חלק מהBRANCES ולאחר מכן להעביר את כל הREPO במידה ונירצה (הגירה בשלבים).

שימו לב! במידה וגודל הREPO שלנו גדול מ2GB,או שהREPO שלנו מכיל קבצים גדולים שלא ניתן לכווץ אותם (COMPRESS) בצורה טובה, ההמלצה היא להגר בשלבים ולא בבת אחת.


השלבים להעתקת ריפו מGITHUB לAWS CodeCommit

  1. ניצור משתמש בAWS עם הרשאות מתאימות ל CodeCommit
  2. נעתיק (CLONE) את הREPO שאנו רוצים להעביר מGITHUB למחשב שלנו.
  3. ניצור REPO חדש בCodeCommit דרך הAWS CLI
  4. ניצור למשתמש שלנו בAWS שם משתמש וסיסמא לCodeCommit
  5. נדחוף את הREPO שלנו מהמחשב לREPO בCodeCommit.

על מנת לעבוד עם CodeCommit יש ליצור משתמש בAWS עם ההרשאות המתאימות.

שימו לב, על מנת לעבוד עם CodeCommit יש ליצור משתמש בAWS עם ההרשאות המתאימות.

העתקת הREPO שלנו מGITHUB למחשב

למטרות הדגמה, עשיתי FORK בGITHUB שלי לרפו נחמד של Design Patterns בPHP בכתובת: https://github.com/avivronen/DesignPatternsPHP שאותו אעביר לCodeCommit.

השלב הבא הוא לבצע CLONE לREPO שאנו רוצים להעביר מGitHub לCodeCommit למחשב שלנו, אני כבר עשיתי את זה.

git clone --mirror <repourl> <mylocaltempdir>

החליפו את <repourl> בכתובת הריפו שלכם בGitHub
ואת <mylocaltempdir> במיקום התיקייה במחשב שלכם שאליה אתם מעוניינים להוריד את הREPO.

כפי שניתן לראות כרגע במחשב קיימת לי REPO בשם DesignPatternsPHP


יצירת REPO חדש בCodeCommit אליה נעתיק את הREPO מGITHUB

לאחר שיצרנו CLONE של הREPO שאנו רוצים להעביר במחשב שלנו, אנחנו ניצור REPO חדש בCodeCommit באמצעות הAWS CLI (אם טרם הגדרת את הAWS CLI במחשב שלכם, ליחצו כאן להסבר איך עושים את זה) על ידי הפקודה הבאה:

aws codecommit create-repository --repository-name avivtest --repository-description "aviv"

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

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


יצירת שם משתמש וסיסמא למשתמש שלנו בAWS לCodeCommit

בנוסף, ניצור למשתמש שלנו בAWS שם משתמש וסיסמא לCodeCommit. לא לשכוח לתת למשתמש שלנו הרשאות לCodeCommit.
נלחץ על IAM, ושם ניראה את רשימת המשתמשים הקיימים, ונלחץ על המשתמש שלנו, במיקרה שלי שם המשתמש הוא codecommit.

נלחץ על Security Credentials

ונגלול למטה עד לחלק של "HTTPS Git credentials for AWS CodeCommit" ונלחץ על "Generate"

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


דחיפת הREPO מהמחשב שלנו לREPO החדש בCodeCommit

עכשיו אנחנו צריכים לדחוף את הREPO מהמחשב שלנו לREPO שיצרנו בCodeCommit.

ניכנס לתיקייה בה ממוקמת הREPO שהורדנו למחשב. במקרה שלי שם התיקייה הוא DesignPatternsPHP

cd DesignPatternsPHP

בשביל לדחוף את הREPO מהמחשב לREPO החדש שיצרנו בAWS נקליט את הפקודה הבאה,
נתבקש להזין את שם המשתמש והסיסמא שיצרנו בשלב הקודם.

git push https://git-codecommit.us-east-1.amazonaws.com/v1/repos/avivtest --all

כאשר https://git-codecommit.us-east-1.amazonaws.com/v1/repos/avivtest
זאת הכתובת של הREPO שלי ב CodeCommit.


כדי לדעת מה הכתובת של הREPO שלכם בCodeCommit ניתן להיכנס למסך הREPOS של CodeCommit, ושם נלחץ על HTTPS ליד שם הREPO שלנו, זה יעתיק לנו את הכתובת.

זהו! ככה פשוט, עכשיו כשניכנס דרך AWS לREPO שלנו בCodeCommit נוכל לראות שהREPO שלנו כבר הועתקה לשם.
עכשיו הREPO שלנו יושב בCodeCommit ונוכל להממשק באמצעות לשלל שירותי ה CI/CD של AWS בקלי קלות.


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

התקנת 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

ככה קל!

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


קריאה נוספת

CodeCommit – הגדרת משתמשי IAM, Access Keys ומדיניות

CodeCommit – הגדרת משתמשי IAM, Access Keys ומדיניות

לא יודעים מה זה CodeCommit? ליחצו כאן

יצירת משתמש לCodeCommit דומה מאוד ליצירת כל משתמש IAM אחר, אנחנו צריכים ליצור משתמש ולתת לו הרשאות מתאימות על מנת שיוכל לעשות שימוש בCodeCommit.

התהליך רק ניראה מסובך בהתחלה, וידרוש מכם לקרוא את כל ההסברים, אבל אחרי שתעשו את זה פעם אחת זאת פעולה שלוקחת ממש כמה דקות!

יצירת המשתמש מורכבת מ5 שלבים:
שלב 1: בחירת שם המשתמש וסוג הAccess Type
שלב 2: בחירת ההרשאות המתאימות למשתמש
שלב 3: הוספת תגיות למשתמש
שלב 4: הצגת כל הפרטים ואישור יצירת המשתמש
שלב 5: תצוגת פרטי המשתמש והורדת הAccess Key

* ובעמוד הבא (2) נלמד איך להגדיר למשתמש החדש שלנו הרשאת SSH לCodeCommit.
* למעוניינים להתחבר באמצעות HTTPS ולא בSSH, בעמוד 3 תמצאו את ההסברים.

אחרי שהתחברנו ל AWS Console, אנחנו צריכים להיכנס לIAM – Identity & Access Managmet, נקיש בתיבת החיפוש IAM ונבחר את האפשרות IAM .


אחרי שנכנסו למסך הIAM אנחנו ניראה את המסך הבא:

בתפריט נבחר את האפשרות "Users" (נמצאת מתחת לGroups), ולאחר מכן נלחץ על "Add User"


שלב 1 – בחירת שם המשתמש וסוג הAccess Type

בשם המשתמש נזין את שם המשתמש הרצוי לנו, אני בחרתי "CodeCommit1", שימו לב, מאוד חשוב לסמן V באפשרות Programmatic Access.


שלב 2: בחירת ההרשאות למשתמש

במסך הבא (שלב 2), אנחנו צריכים לבחור הרשאות למשתמש, ניתן ליצור קבוצה ולה לשייך את ההרשאות המתאימות או לחילופין לשייך למשתמש פוליסה ישירות. אנחנו נבחר לשייך פוליסה ישירות (אולם ההמלצה שלי היא ליצור דווקא קבוצה לדוגמה "מפתחים" ואליה לשייך את הפוליסה המתאימה).
במסך חיפוש הפוליסה אנו נקליד CodeCommit ואז יופיעו לנו 3 פוליסות רלוונטיות:
AWSCodeCommitReadOnly
AWSCodeCommitPowerUser
AWSCodeCommitFullAccess.
ניתן ללחוץ על החץ ליד כל פוליסה על מנת לראות מה היא מאפשרת ובהתאם לבחור את ההרשאה הנכונה הרצויה שלנו. – אנחנו נבחר כרגע Full Access.


שלב מס 3: הוספת תגיות למשתמש

שלב מס 3 מאפשר לנו להוסיף TAGS (תגית) למשתמש, מומלץ מאוד, עוזר מאוד בחיפוש, בפירוט החיובים וכו, אבל במדריך הזה אני בחרתי שלא להוסיף.

שלב מס 4: הצגת כל הפרטים ואישורם


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

לאישור ויצירת המשתמש נלחץ על Create User.


שלב 5 והאחרון – תצוגת פרטי המשתמש ואפשרות הורדת הSecret Access Key שלו

שלב 5 והאחרון מציג לנו את המשתמש שיצרנו, שימו לב: זאת הפעם היחידה בה נוכל לראות את הSecret Access Key של המשתמש, לכן חשוב לשמור אותו. הדרך המומלצת לשמירה היא להוריד את קובץ הCSV.

לא לדאוג, אני אמחוק את המשתמש.. 🙂

כדי לוודא שהמשתמש נוצר בצורה תקינה, במסך הIAM נלחץ על USERS ונלחץ על המשתמש החדש שיצרנו, במקרה שלנו CodeCommit1.

ואכן ניתן לראות שלמשתמש יש את פוליסת ההרשאות שבחרנו.
וכמו כן, ניתן לראות שיש לו ACCESSKEY ID, אבל אין לו מפתח SSH עדיין.

בעמוד הבא, נצמיד מפתח SSH למשתמש החדש שיצרנו.

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

הקדמה ל CodeCommit

CodeCommit הוא שירות מנוהל של AWS לניהול ושיתוף קוד (GIT), כמו GitHub, BitBucket ושירותים נוספים שאתם בטח מכירים.


מה הייתרונות העיקריים של CodeCommit לעומת שירותים מנוהלים אחרים?

* סקאלביליות, זמינות וDurability
CodeCommit מאחסן את הרפוסוטוריס שלנו בS3 וDynamoDB ביותר מפסיליטי אחד בצורה מוצפנת
* אין הגבלה לגודל הרפסטורי ולקבצים שאנו מעלים אליו
* התממשקות מעולה לשאר שירות AWS כמו CodePipeline, Lambada , SNS – הרבה יותר נוח מכל פיתרון אחר
* ניתן להגר בקלות לCodeCommit משירותים אחרים כמו GitHub
* עובד עם כל כלי הGIT הרגילים שאתם מכירים.


איך מתחברים לCodeCommit?

כמו רוב שירותי הGIT, גם ל CodeCommit ניתן להתחבר גם באמצעות SSH וגם באמצעות HTTPS, בנוסף, כמו כל שירותי AWS ניתן לשלוט עליו באמצעות ה AWS CLI.

אני ממליץ לעשות שימוש בCodeCommit באמצעות SSH עם מפתחות (RSA Key Pairs), את המפתח שלנו אנחנו צריכים לקשר לחשבון IAM שלנו בAWS ושומרים אותו אצלנו במחשב.

האפשרות השנייה היא כמובן HTTPS, קלה יותר לשימוש, כאן אין צורך להגדיר מפתחות אבל אז יש צורך להקיש שם משתמש וסיסמא.
שימו לב, במידה ומתחברים באמצעות HTTPS יש לוודא שפורט 443 פתוח החוצה בפיירוואל שלנו (של המחשב שאנו עובדים איתו או במשרד), במידה ומתחברים בSSH יש לוודא שפורט 22 פתוח.

הייתרונות בשימוש HTTPS:
* קל יותר לשימוש, שם משתמש וסיסמא
* כל המידע שמועבר מוצפן
* רוב פיירוואלים כבר מוגדרים מראש לאפשר גישה דרך פורט 443.
למשתמשי מאק ככל הניראה תהיה בעיה לעשות שימוש בHTTPS עקב הבעיתיות ב Mac OSC keychain, יש לכך כמובן פיתרונות, אבל למשתמשי מאק הייתי ממליץ לעשות שימוש בHTTPS, כיון שאנחנו רוצים כמה שפחות להתעסק בכלים ויותר להתעסק בפיתוח הקוד שלנו.

ייתרונות בשימוש בSSH:
* פרוטוקול SSH הוא יעיל! בנוסף לא צריך להקיש שם משתמש וסיסמא בכל פעם.
* לטעמי האישי, מפתחות SSH בטוחים יותר, הרבה יותר קשה לזייף אותם לעומת זיוף סיסמאות (Brutal Force לדוגמה).
* כל הדאטא שעובר הוא מוצפן במעבר כמו בHTTPS
חסרונות: למשתמשים חדשים, יהיה יותר קשה לנהל את נושא המפתחות. בנוסף, ישנם פיירואלים אשר חוסמים גישה דרך פורט 22 וצריך לפתוח אותה.


כמה עולה CodeCommit?

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

חבילת החינם (Free Tier):
* מוגבלת ל5 משתמשים בחינם
* אין הגבלה לכמות הRepositoreis
* שטח איחסון של 50GB לחודש
* 10,000 קריאות לGit לחודש (Git Requests)

לכל משתמש מעל ה5 משתמשים הראשונים תשלמו כ1$ למשתמש, ותקבלו 10GB שטח איחסון למשתמש בנוסף ל50GB שכבר יש לכם, ו2000 קריאות לGIT בחודש לכל משתמש פעיל, שוב , בנוסף ל10,000 קריאות שכבר כלולות לכן בחבילה.

חישוב לדוגמה: בהנחה שיש לכם 10 משתמשים, החשבון הכולל יהיה כ10$:
5 משתמשים ראשונים: חינם
5 משתמשים נוספים, 1$ לכל אחד, סהכ 5$ נוספים.

צילום מסך מעמוד המחירים של CodeCommit
צילום מסך מעמוד המחירים של CodeCommit

וזאת בהנחה שלא תחרגו מהנל (שטח איחסון, כמות קריאות לGIT), כמובן שמומלץ להתעדכן במחירים המעודכנים באתר של AWS. בנוסף תשלמו 0.06$ לכל GB מעבר למה שכלול בחבילה, ו0.001$ לכל קריאת GIT נוספת (Git Request).
בתכלס, לרוב הסטארטאפים הקטנים או הצוותים הקטנים, חבילת החינם תהיה יותר ממספיקה. קשה לי להאמין שתחרגו מ50GB איחסון לחודש ו10,000 קריאות לGIT.


אלטרנטיבות פופלאריות ל CodeCommit, יש עוד המון, בחרתי את הפופלאריות ביותר:

יש עוד המון, בחרתי את הפופלאריות ביותר:
1. גיט האב: https://github.com/
2. ביט באקט: https://bitbucket.org
3. גיט לאב: https://gitlab.com


קריאה נוספת על CodeCommit

איך יוצרים משתמש עם הרשאות מתאימות ואיך מתחברים ל CodeCommit?

קריאה נוספת על CodeCommit