בדוגמא הבאה השתמשתי בהפצה של לינוקס מסוג 7 Centos:

לפני שנתחיל - אם יש מכונה של Linux ב-OCI, ראשית יש לוודא שמותקנים עליה הכלים הבאים:
OCI CLI
Kubectl
(אפשר להשתמש ב Image-הנקראImage : Oracle Developer Cloud) הזמין בענן ומבוסס על הפצה של Oracle Linux ומגיע עם OCI CLI וכלי פיתוח שמותקנים מראש, מלבד Kubectl נכון לרגע כתיבת המדריך.

- הערה: במידה ואין את הכלים זמינים, צריך להתקין אותם וההוראות במדריך נפרד.
1. בשלב הראשון מתחברים ב-SSH למכונה ומריתים את הפקודות הבאות:
[opc@my-oracle-vm ~] $ kubectl version --short

זה בסדר גם אם יופיע רק ה-Client Version.
[opc@my-oracle-vm ~] $ oci --version

2. מתחברים דרך הדפדפן ל Console של הענן. מעתיקים את ה-Instance OCID של המכונה שאנחנו רוצים לעבוד דרכה. בתפריט הצידי לוחצים על Compute > Instances

לאחר מכן בוחרים את המכונה ברשימה:

מעתיקים את ה-Instance OCID של המכונה, בלחיצה על כפתור ה-copy:

3. פותחים שוב את התפריט ומנווטים ל-Identity > Dynamic Groups

יוצרים Dynamic Group דרך הכפתור "Create Dynamic Group":

ממלאים את הפרמטרים הבאים:
Name – שם הקבוצה.
Description – כדי לתאר למה.
Rule 1 – החוק עם אותו Instance ID שהעתקנו במקום <Instance-OCID>.
למידע נוסף לגבי חוקים:
https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm
דוגמא:

לבסוף לוחצים על הכפתור "Create".
הסבר: בשלב זה יצרנו את ה-Dynamic Group עם המזהה של המכונה שלנו, עכשיו יש לתת הרשאה לאותו Dynamic Group, לפי ה-Policy בענן אנחנו יכולים לתת הרשאות לקבוצות משתמשים, בעזרת Dynamic Group, אנחנו יכולים לתת הרשאות למשאבים – כמו מכונות לדוגמא.
4. נתקדם ונפתח את התפריט הצידי וננווט ל Identity > Policies.

הולכים ל-policy קיים או מייצרים חדש, עם ה-Rule הבא (כל ההרשאות):

לוחצים על הכפתור "Edit Policy Statements":

ומוסיפים את ה-Rule הבא:
allow dynamic-group <dynamic-group-name> to manage all-resources in compartment <compartment-name>
יש להזין את שם ה-Dynamic Group ואת שם ה-Compartment שלנו. דוגמא:

- הערה: מומלץ לא לעשות את זה, הדוגמא להמחשה בלבד. אנחנו נותנים למכונה את כל ההראשות, יש להחליט על הרשאות ספציפיות.
לקריאה נוספת על Policies:
https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Concepts/commonpolicies.htm
5. חוזרים לחלון SSH במכונה שלנו ועושים בדיקה שההרשאות עובדות, במידה וההרשאות עובדות ניתן יהיה להריץ את הפקודה הבאה, בלי OCI CONFIG FILE.
oci os ns get --auth instance_principal

במידה ואנחנו מקבלים שגיאה, יש לבדוק את ההרשאות שהוגדרו בצורה נכונה.
- כדי לוודא שזה עובד, מי שהיה לו OCI Config file, יכול למחוק את הקובץ: $HOME/.oci/config rm -rf
ולהריץ שוב את הפקודה:
oci os ns get --auth instance_principal
6. חוזרים לדפדפן לחלון ה-OCI, מנווטים בתפריט צד ל- Developer Services > Container Clusters (OKE).

לוחצים על שם ה- OKE Cluster שלנו:

ולוחצים על הכפתור "copy" כדי להעתיק את ה Cluster ID:

7. חוזרים למכונה – כדי ליצור קובץ kubeconfig:
לפני שמייצרים אותו, מומלץ למחוק ולוודא שאין אחד שקיים לפני:
rm -rf $HOME/.kube/config
oci ce cluster create-kubeconfig --cluster-id <oke-ocid> --auth instance_principal

8. לאחר שיצרנו את ה Kubeconfig, נייצא אותו כמשתנה סביבה:
export KUBECONFIG=$HOME/.kube/config
9. נוסיף את המשתנה של הזדהות באמצעות Instance Principal כמשתנה סביבה לתוך ה-bashrc:
echo "export OCI_CLI_AUTH=instance_principal" >> $HOME/.bashrc
ונעשה Source לbashrc לאחר השינוי.
source $HOME/.bashrc
10. בואו נוודא שזה עובד: - עכשיו אפשר לבדוק שהכל עובד ולהריץ פקודה שלkubectl
kubectl get nodes

אם התקבלה תוצאה ללא שגיאה, הכל מוגדר כמו שצריך!
בדוגמא הבאה השתמשתי בהפצה של לינוקס מסוג 7 Centos:

לפני שנתחיל - אם יש מכונה של Linux ב-OCI, ראשית יש לוודא שמותקנים עליה הכלים הבאים:
OCI CLI
Kubectl
(אפשר להשתמש ב Image-הנקראImage : Oracle Developer Cloud) הזמין בענן ומבוסס על הפצה של Oracle Linux ומגיע עם OCI CLI וכלי פיתוח שמותקנים מראש, מלבד Kubectl נכון לרגע כתיבת המדריך.

- הערה: במידה ואין את הכלים זמינים, צריך להתקין אותם וההוראות במדריך נפרד.
1. בשלב הראשון מתחברים ב-SSH למכונה ומריתים את הפקודות הבאות:
[opc@my-oracle-vm ~] $ kubectl version --short

זה בסדר גם אם יופיע רק ה-Client Version.
[opc@my-oracle-vm ~] $ oci --version

2. מתחברים דרך הדפדפן ל Console של הענן. מעתיקים את ה-Instance OCID של המכונה שאנחנו רוצים לעבוד דרכה. בתפריט הצידי לוחצים על Compute > Instances

לאחר מכן בוחרים את המכונה ברשימה:

מעתיקים את ה-Instance OCID של המכונה, בלחיצה על כפתור ה-copy:

3. פותחים שוב את התפריט ומנווטים ל-Identity > Dynamic Groups

יוצרים Dynamic Group דרך הכפתור "Create Dynamic Group":

ממלאים את הפרמטרים הבאים:
Name – שם הקבוצה.
Description – כדי לתאר למה.
Rule 1 – החוק עם אותו Instance ID שהעתקנו במקום <Instance-OCID>.
למידע נוסף לגבי חוקים:
https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm
דוגמא:

לבסוף לוחצים על הכפתור "Create".
הסבר: בשלב זה יצרנו את ה-Dynamic Group עם המזהה של המכונה שלנו, עכשיו יש לתת הרשאה לאותו Dynamic Group, לפי ה-Policy בענן אנחנו יכולים לתת הרשאות לקבוצות משתמשים, בעזרת Dynamic Group, אנחנו יכולים לתת הרשאות למשאבים – כמו מכונות לדוגמא.
4. נתקדם ונפתח את התפריט הצידי וננווט ל Identity > Policies.

הולכים ל-policy קיים או מייצרים חדש, עם ה-Rule הבא (כל ההרשאות):

לוחצים על הכפתור "Edit Policy Statements":

ומוסיפים את ה-Rule הבא:
allow dynamic-group <dynamic-group-name> to manage all-resources in compartment <compartment-name>
יש להזין את שם ה-Dynamic Group ואת שם ה-Compartment שלנו. דוגמא:

- הערה: מומלץ לא לעשות את זה, הדוגמא להמחשה בלבד. אנחנו נותנים למכונה את כל ההראשות, יש להחליט על הרשאות ספציפיות.
לקריאה נוספת על Policies:
https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Concepts/commonpolicies.htm
5. חוזרים לחלון SSH במכונה שלנו ועושים בדיקה שההרשאות עובדות, במידה וההרשאות עובדות ניתן יהיה להריץ את הפקודה הבאה, בלי OCI CONFIG FILE.
oci os ns get --auth instance_principal

במידה ואנחנו מקבלים שגיאה, יש לבדוק את ההרשאות שהוגדרו בצורה נכונה.
- כדי לוודא שזה עובד, מי שהיה לו OCI Config file, יכול למחוק את הקובץ: $HOME/.oci/config rm -rf
ולהריץ שוב את הפקודה:
oci os ns get --auth instance_principal
6. חוזרים לדפדפן לחלון ה-OCI, מנווטים בתפריט צד ל- Developer Services > Container Clusters (OKE).

לוחצים על שם ה- OKE Cluster שלנו:

ולוחצים על הכפתור "copy" כדי להעתיק את ה Cluster ID:

7. חוזרים למכונה – כדי ליצור קובץ kubeconfig:
לפני שמייצרים אותו, מומלץ למחוק ולוודא שאין אחד שקיים לפני:
rm -rf $HOME/.kube/config
oci ce cluster create-kubeconfig --cluster-id <oke-ocid> --auth instance_principal

8. לאחר שיצרנו את ה Kubeconfig, נייצא אותו כמשתנה סביבה:
export KUBECONFIG=$HOME/.kube/config
9. נוסיף את המשתנה של הזדהות באמצעות Instance Principal כמשתנה סביבה לתוך ה-bashrc:
echo "export OCI_CLI_AUTH=instance_principal" >> $HOME/.bashrc
ונעשה Source לbashrc לאחר השינוי.
source $HOME/.bashrc
10. בואו נוודא שזה עובד: - עכשיו אפשר לבדוק שהכל עובד ולהריץ פקודה שלkubectl
kubectl get nodes

אם התקבלה תוצאה ללא שגיאה, הכל מוגדר כמו שצריך!
הודעתך לא התקבלה - נסה שוב מאוחר יותר
Oops! Something went wrong while submitting the form