קובץ תצורה של Boto

בדף הזה נסביר את אופן השימוש של gsutil בקובץ תצורה boto, ונראה דוגמה לשיתוף פעולה בשימוש בקובץ. קובץ התצורה boto משמש גם את boto, שהוא ה-Amazon S3 SDK ל-Python.

סקירה כללית על קובץ התצורה

קובץ התצורה boto מכיל ערכים שקובעים את אופן הפעולה של gsutil. לדוגמה, המשתנה prefer_api קובע איזה API יהיה המועדף על gsutil. כדי לשנות את המשתנים של קובץ התצורה boto צריך לערוך ישירות את קובץ התצורה. רוב המשתמשים לא יצטרכו לערוך את המשתנים האלה, אבל בדרך כלל צריך לעשות זאת כשרוצים:

מיקום

מיקום ברירת המחדל של קובץ התצורה boto הוא בספריית הבית של המשתמש, ‎~/.boto, ב-Linux או ב-macOS, וב-%HOMEDRIVE%%HOMEPATH% ב-Windows. כדי לאתר את המיקום של קובץ התצורה מריצים את הפקודה gsutil version -l.

כדי לשנות את המיקום שבו gsutil תחפש את קובץ התצורה, מגדירים משתנה הסביבה BOTO_CONFIG. אפשר גם להגדיר נתיב של קובצי תצורת boto לטעינה על ידי הגדרת משתנה הסביבה BOTO_PATH באמצעות נתיב שמופרד בסימן : (או ; ב-Windows). לדוגמה, הגדרת משתנה הסביבה BOTO_PATH כך:

/etc/projects/my_group_project.boto.cfg:/home/mylogin/.boto

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

מבנה

קובץ התצורה מכיל מספר קטעים: [Credentials], [Boto], [GSUtil] ו-[OAuth2]. בהמשך מוצגות הגדרות התצורה, בחלוקה לפי קטעים. השימוש שלהן מתועד בקובץ התצורה boto עצמו, בהערות שמופיעות לפני כל הגדרה:

[Credentials]
  aws_access_key_id
  aws_secret_access_key
  gs_access_key_id
  gs_host
  gs_host_header
  gs_json_host
  gs_json_host_header
  gs_json_port
  gs_oauth2_refresh_token
  gs_port
  gs_secret_access_key
  gs_service_client_id
  gs_service_key_file
  gs_service_key_file_password
  s3_host
  s3_host_header
  s3_port

[Boto]
  proxy
  proxy_type
  proxy_port
  proxy_user
  proxy_pass
  proxy_rdns
  http_socket_timeout
  ca_certificates_file
  https_validate_certificates
  debug
  max_retry_delay
  num_retries

[GoogleCompute]
  service_account

[GSUtil]
  check_hashes
  content_language
  decryption_key1 ... 100
  default_api_version
  disable_analytics_prompt
  encryption_key
  json_api_version
  max_upload_compression_buffer_size
  parallel_composite_upload_component_size
  parallel_composite_upload_threshold
  sliced_object_download_component_size
  sliced_object_download_max_components
  sliced_object_download_threshold
  parallel_process_count
  parallel_thread_count
  gzip_compression_level
  prefer_api
  resumable_threshold
  resumable_tracker_dir (deprecated in 4.6, use state_dir)
  rsync_buffer_lines
  software_update_check_period
  state_dir
  tab_completion_time_logs
  tab_completion_timeout
  task_estimation_threshold
  test_cmd_regional_bucket_location
  test_notification_url
  use_magicfile
  test_hmac_service_account
  test_hmac_alt_service_account
  test_hmac_list_service_account

[OAuth2]
  client_id
  client_secret
  oauth2_refresh_retries
  provider_authorization_uri
  provider_label
  provider_token_uri
  token_cache

כשעורכים את הקובץ, חשוב להקפיד לא לערוך בטעות שמות של הגדרות, כמו gs_access_key_id, ולא להסיר את התווים המפרידים בין קטעים, כמו [Credentials].

עדכון לקובץ התצורה העדכני ביותר

עם הזמן, תכונות תצורה חדשות שניתנות לשליטה מתווספות לקובץ התצורה boto, אבל רוב המשתמשים ב-gsutil יוצרים קובץ תצורה פעם אחת ושומרים אותו לזמן רב. כלומר, תכונות חדשות לא יופיעו כשתעדכנו לגרסה חדשה יותר של gsutil. אם רוצים להוריד את קובץ התצורה העדכני ביותר, שכולל את ההגדרות והמסמכים האחרונים, צריך לשנות את השם של הקובץ הנוכחי (למשל, ל-.boto_old), להריץ את gcloud init (או אם משתמשים בגרסה עצמאית של gsutil מדור קודם, את gsutil config עם הדגלים -a או -e), ולאחר מכן להעביר את הגדרות התצורה שרוצים לשמור מהקובץ הישן לקובץ החדש שנוצר. עם זאת, שימו לב שאם אתם משתמשים בפרטי כניסה של OAuth2 וחוזרים דרך תהליך ההגדרה של OAuth2, הפעולה הזו תגרום לביטול התוקף של פרטי הכניסה הקודמים של OAuth2.

שימוש לדוגמה בקובץ התצורה

בדוגמה הזו, חברה קטנה רוצה להשתמש ב-Cloud Storage כמערכת אחסון לעובדים שלה. בתור אדמינים ב-IT, אתם צריכים ליצור פרויקט במסוףGoogle Cloud ואז ליצור קטגוריות לכל עובד. כדי להקל על העובדים את השימוש ב-Cloud Storage, כדאי ליצור ולאחסן את ההגדרות לכל החברה – למשל את ההגדרה של שרת proxy וערכי הסף של העלאה מורכבת מקבילה – בקובץ מרכזי שהעובדים יכולים להפנות אליו בנתיב תצורת BOTO שלהם. באופן כזה לא כל עובד יצטרך להגדיר ידנית את החלקים המשותפים של התצורה, ואתם כאדמינים תוכלו לשנות בקלות את ההגדרות המשותפות במקרה הצורך.

כדי לעשות זאת:

  1. יוצרים קובץ תצורה boto מרכזי שכל העובדים יכולים לקרוא.

    אפשר לעשות זאת באמצעות gcloud init.

    קובץ התצורה boto עשוי להכיל, לדוגמה:

    [Boto]
    proxy = yourproxy.com
    proxy_port = 8080
    proxy_type = http
     
    [GSUtil]
    parallel_composite_upload_threshold = 150M
    
  2. מנחים את העובדים להתקין את Google Cloud CLI.

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

  3. מנחים את העובדים להוסיף משתנה סביבה BOTO_PATH.

    משתנה הסביבה BOTO_PATH מפרט את הנתיב של קובץ התצורה שנמצא במיקום מרכזי, ואחריו את קובץ התצורה המקומי של העובד. לדוגמה, אם קובץ התצורה המרכזי נמצא בספרייה centralhub/, אז למשתמש jane, משתנה הסביבה BOTO_PATH עשוי להיות:

    BOTO_PATH =/centralhub/boto.cfg:home/jane/.boto

כשהעובדים מריצים את gsutil, הם ישתמשו באופן אוטומטי בתצורה שמצוינת בקובץ boto המרכזי. אם יש צורך, האדמין יכול לשנות את ההגדרות לשרת ה-proxy, את סף ההעלאה המורכבת המקבילה והגדרות אחרות בקובץ התצורה המרכזי, ולהחיל את השינויים על כל העובדים באמצעות קובץ התצורה המרכזי.