שירותי אוטומציה וניהול תצורה לתשתיות

אוטומציה של תשתיות: Ansible, AWX/Tower, Rundeck, SaltStack. ניהול תצורה, תיאום משימות, ניהול עדכונים ופעולות בשירות עצמי.
מציג 30 מתוך 65כל 1054 השירותים
אילוף צינורות ML: CI/CD, ניטור ופריסה
מורכב
מ- 2 שבועות עד 3 חודשים
הטמעת AIOps לאוטומציה של תפעול IT
מורכב
מ- 2 שבועות עד 3 חודשים
הקמת פורטל מפתחים (Backstage) לכלים פנימיים
מורכב
מ- 2 שבועות עד 3 חודשים
הטמעת Internal Developer Platform (IDP) מפתח מוכן
מורכב
מ- 2 שבועות עד 3 חודשים

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

אוטומציה של תשתית: Ansible, AWX, Rundeck, SaltStack

המשימה נשמעת פשוטה: לעדכן את קובץ התצורה של nginx על 200 שרתים. ביצוע ידני לוקח יומיים ומוביל בהכרח לכמה פערים בין השרתים. הצוות שלנו כותב playbook של Ansible תוך 15 דקות, מריץ אותו, ומקבל תצורה זהה על כל שרת עם שינויים שמתחייבים ל-git. אוטומציה לא רק מאיצה את התהליך—היא מבטלת את מחלקת הבעיות הנובעות מניהול ידני.

אנחנו מבצעים אוטומציה של תשתית מאז 2019—מעל 5 שנים, עם יותר מ-50 פרויקטים שהושלמו: מסטארטאפים עם 10 שרתים ועד קלאסטרים ארגוניים עם 2000 מכונות. הסטACK שלנו: Ansible, AWX, Rundeck, SaltStack. הגישה שלנו תמיד זהה: אידמפוטנטיות, ניהול גרסאות, RBAC, תיעוד. התוצאה: זמן השבתה ירד ב-80%, ומספר התקריות עקב טעות אנוש יורד פי שלושה.

למה אידמפוטנטיות היא הדרישה המרכזית לייצור?

מתחילים כותבים Ansible כמו סקריפטים של bash עם command ו-shell בכל מקום. Ansible ברמת ייצור משתמש במשימות אידמפוטנטיות עם מודולים מתאימים, ניהול משתנים, והפרדת תפקידים. אידמפוטנטיות מבטיחה שהרצה חוזרת של playbook לא תכניס שינויים מיותרים. בלעדיה, כל הרצה מסכנת את התצורה, והחזרה לאחור הופכת להגרלה.

מבנה תפקידים במקום playbook שטוח

roles/ nginx/ tasks/ main.yml install.yml configure.yml handlers/ main.yml templates/ nginx.conf.j2 vhost.conf.j2 defaults/ main.yml vars/ main.yml files/ ssl/ 

roles/ nginx/ tasks/ main.yml install.yml configure.yml handlers/ main.yml templates/ nginx.conf.j2 vhost.conf.j2 defaults/ main.yml vars/ main.yml files/ ssl/ — משתנים בעדיפות נמוכה שקל לדרוס. defaults/main.yml — משתנים בעדיפות גבוהה, שנדרסים לעיתים רחוקות. זה חשוב: ל-Ansible יש 22 רמות עדיפות למשתנים, ובלבול ביניהם הוא מקור לבאגים שקשה לאבחן.

אידמפוטנטיות היא הדרישה המרכזית

המודול vars/main.yml משנה קובץ רק אם הוא השתנה—זה נכון. template אינו אידמפוטנטי; הוא ירוץ בכל פעם. הגישה הנכונה: להשתמש במודול command: sed -i 's/old/new/' /etc/app.conf או lineinfile.

Handlers ו-notify

Nginx לא צריך להיות מופעל מחדש אם התצורה לא השתנתה:

# tasks/configure.yml - name: Deploy nginx config template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf owner: root mode: '0644' validate: 'nginx -t -c %s' notify: Reload nginx # handlers/main.yml - name: Reload nginx systemd: name: nginx state: reloaded 

replace עם # tasks/configure.yml - name: Deploy nginx config template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf owner: root mode: '0644' validate: 'nginx -t -c %s' notify: Reload nginx # handlers/main.yml - name: Reload nginx systemd: name: nginx state: reloaded בודק את התצורה לפני ההעתקה. אם האימות נכשל, המשימה לא מתבצעת, והשרת לא מקבל תצורה שבורה. ה-handler מופעל פעם אחת בסוף ה-play, גם אם מספר משימות הודיעו לו.

סודות באמצעות Ansible Vault

validate יוצר מחרוזת מוצפנת שניתן לאחסן ישירות ב-nginx -t. קובץ סיסמת Vault דרך ansible-vault encrypt_string 'секретный_пароль' --name db_password או משתנה הסביבה vars/main.yml עבור CI/CD ללא קלט אינטראקטיבי.

Inventory דינמי

עבור AWS, השתמשו בתוסף --vault-password-file:

# inventory/aws_ec2.yml plugin: amazon.aws.aws_ec2 regions: - eu-central-1 filters: tag:Environment: production instance-state-name: running keyed_groups: - key: tags.Role prefix: role - key: placement.availability_zone hostnames: - private-ip-address 

ANSIBLE_VAULT_PASSWORD_FILE יציג את מבנה הקבוצות שנוצר אוטומטית בהתבסס על תגי EC2. אין צורך לעדכן ידנית את קובץ ה-hosts כשהתשתית משתנה.

איך AWX מרחיב את Ansible עבור צוות?

הרצת aws_ec2 ממחשב נייד היא בסדר עבור מהנדס אחד. כשעשרה אנשים מריצים playbooks, יש צורך בריכוזיות: מי רץ על מה, מתי, ועם איזו תוצאה. AWX (הגרסה הפתוחה של Ansible Tower) פותר בדיוק את זה.

מה מספק Ansible מרכזי דרך AWX?

Job Templates הם playbook + inventory + credentials + extra vars. נוצרים פעם אחת, רצים כל מספר פעמים עם אותם פרמטרים או עם דריסות דרך Survey.

Survey הוא טופס עם פרמטרים שהמפעיל ממלא לפני הביצוע. לדוגמה: בחירת סביבה (staging/production), גרסת אפליקציה לפריסה, דגל # inventory/aws_ec2.yml plugin: amazon.aws.aws_ec2 regions: - eu-central-1 filters: tag:Environment: production instance-state-name: running keyed_groups: - key: tags.Role prefix: role - key: placement.availability_zone hostnames: - private-ip-address . זה מאפשר לצוות להריץ playbooks ללא גישה לקוד.

Credentials ב-AWX מאוחסנים מוצפנים ולעולם לא נחשפים למשתמש—הם משמשים רק במהלך הביצוע. מפתחות SSH, אישורי AWS, סיסמת Vault—כולם מאוחסנים ב-AWX ולא מועתקים לתחנות עבודה.

דוגמה: AWX כקוד דרך Ansible Collection ansible-inventory -i inventory/aws_ec2.yml --graph
- name: Create Job Template awx.awx.job_template: name: "Deploy Application" job_type: run inventory: "Production Inventory" project: "Infrastructure" playbook: deploy.yml credentials: - "SSH Production" - "Vault Password" survey_enabled: yes survey_spec: name: "Deploy Survey" description: "" spec: - question_name: "Application version" variable: app_version type: text required: yes - question_name: "Run database migrations" variable: run_migrations type: multiplechoice choices: "yes\nno" default: "no" state: present 

כל תצורת AWX מאוחסנת ב-git ומיושמת דרך אותו Ansible. תשתית כקוד רקורסיבית.

RBAC ב-AWX

עקרון ההרשאות המינימליות דרך Organizations → Teams → Users:

  • צוות הפיתוח רואה רק Job Templates לפריסת האפליקציה שלהם ואינו יכול לשנות Credentials
  • צוות ה-DevOps רואה את כל Job Templates ויכול לשנות Inventories
  • רק מנהלי AWX מנהלים Credentials והגדרות מערכת

Workflow Job Templates — שרשראות של Job Templates עם הסתעפות לפי תוצאות. Workflow: הרצת בדיקות → (הצלחה) → פריסה ל-staging → (הצלחה) → הרצת בדיקות עשן → (הצלחה) → המתנה לאישור → פריסה לייצור. צומת האישור חוסם את ה-workflow עד לאישור ידני—נוח לפריסות ייצור.

Rundeck: משימות תפעוליות ללא תכנות

Rundeck תופס נישה אחרת—לא ניהול תצורה, אלא משימות תפעוליות. הפעלת שירות מחדש, ניקוי מטמון, יצירת גיבוי, הרצת סקריפט SQL. קהל היעד כולל לא רק DevOps, אלא גם DBAs, מפתחים ותמיכה.

Job Options עם אימות—Rundeck מאפשר להגדיר regex עבור פרמטרי קלט. אי אפשר להקליד בטעות ansible-playbook במקום run_migrations בשם הסביבה—הטופס ידחה את זה.

אינטגרציה עם ServiceNow, PagerDuty, Jira—עבודה רצה אוטומטית דרך webhook כשנוצרת כרטיס מסוג מסוים. זרימה סטנדרטית: התראה ב-PagerDuty → webhook ל-Rundeck → runbook אוטומטי (הפעלת שירות מחדש, ניקוי דיסק).

SaltStack: כשמהירות התגובה חשובה

Salt עובד במצב push (כמו Ansible) ובמצב pull דרך חיבור ZeroMQ קבוע בין ה-master ל-minions. זה נותן זמן השהיה של 1–3 שניות במקום כמה שניות ליצירת חיבור SSH.

awx.awx ירוץ על כל ה-minions בו-זמנית ויחזיר תוצאות תוך 1–3 שניות. על 500 שרתים.

- name: Create Job Template awx.awx.job_template: name: "Deploy Application" job_type: run inventory: "Production Inventory" project: "Infrastructure" playbook: deploy.yml credentials: - "SSH Production" - "Vault Password" survey_enabled: yes survey_spec: name: "Deploy Survey" description: "" spec: - question_name: "Application version" variable: app_version type: text required: yes - question_name: "Run database migrations" variable: run_migrations type: multiplechoice choices: "yes\nno" default: "no" state: present מציג את כל המשימות שפועלות כרגע. למצבי חירום (כשצריך לעשות משהו בדחיפות על פני כל התשתית), Salt מהיר יותר מ-Ansible.

השוואת כלי אוטומציה

כלי ארכיטקטורה מקרה שימוש מומלץ
Ansible ללא סוכן, push, SSH ניהול תצורה, פריסה
AWX/Tower ממשק משתמש ל-Ansible, RBAC, API שיתוף פעולה בצוות, פעולות self-service
Rundeck ללא סוכן, runbooks, RBAC משימות תפעוליות עבור לא-DevOps
SaltStack סוכן, push+pull, ZeroMQ קנה מידה גדול, מהירות תגובה

מה כלול בהתקשרות לאוטומציה

אנחנו מספקים מחזור מלא—מביקורת ועד תמיכה. כך פרויקט בנוי:

  1. ביקורת תשתית קיימת — מלאי של שרתים, תוכנות, תלויות, תהליכים ידניים.
  2. עיצוב ארכיטקטורת אוטומציה — בחירת כלים, מבנה תפקידים, צינור CI/CD.
  3. כתיבת playbooks/עבודות — אידמפוטנטיים, עם Vault, inventory דינמי, בדיקות.
  4. הקמת ניהול מרכזי — AWX / Tower, Rundeck, RBAC, webhooks.
  5. תיעוד — runbooks, תיאורי זרימות עבודה, הוראות למפעילים.
  6. הכשרת צוות — סדנה על Ansible / AWX / Rundeck (2–3 ימים).
  7. תמיכה לאחר ייצור — חודש תמיכה, תיקוני תקלות, שיפורים.

כל הארטיפקטים נמסרים במאגר git. לאחר סיום הפרויקט, אתה מקבל תשתית הניתנת לשחזור מלא כקוד.

לוחות זמנים למשימות טיפוסיות

משימה לוח זמנים
כתיבת תפקידי Ansible לסטACK (nginx + app + db) 3–7 ימים
פריסה והגדרה של AWX עם RBAC 3–5 ימים
העברת משימות ידניות ל-Rundeck (10–20 משימות) 1–2 שבועות
בניית צינור GitOps מלא (git → AWX → prod) 2–4 שבועות
שיפוץ Ansible legacy לתפקידים + Vault + inventory דינמי 1–3 שבועות

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

למה לבחור בנו

  • מעל 5 שנות אוטומציה של תשתית, יותר מ-50 פרויקטים שהושלמו.
  • מומחים מוסמכים של Red Hat Ansible Automation (RHCE).
  • 98% מהפרויקטים נמסרים בזמן, MTTR ממוצע ירד ב-70%.
  • עבודה עם AWS, GCP, Azure, Yandex Cloud, Selectel.
  • שימוש ב-Ansible ו-AWX — כלים בקוד פתוח ללא נעילת ספק.

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