جدول اختصارات وحدات Ansible
Ansible هي أداة قوية لأتمتة العمليات. ستعرفك هذه المقالة على كيفية استخدام وحداتها الشائعة.
التنسيق (Format)
بنية الملف الأساسية
---
- hosts: production
remote_user: root
tasks:
- ···يرجى وضع الوحدات الخاصة بك تحت tasks.
تنسيق المهمة
تنسيق السطر الواحد
- apt: pkg=vim state=presentتنسيق الخريطة (Mapping)
- apt:
pkg: vim
state: presentتنسيق القيم المزدوجة (Folded Scalar)
- apt: >
pkg=vim
state=presentيمكنك استخدام أي من التنسيقات المذكورة أعلاه لتعريف المهام. يوصى بتنسيق السطر الواحد للإعلانات القصيرة، وتنسيق الخريطة للإعلانات الطويلة.
الوحدات (Modules)
Aptitude
إدارة الحزم
- apt:
pkg: nodejs
state: present # absent | latest
update_cache: yes
force: noملفات حزم Deb
- apt:
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"إدارة المستودعات (Software Source)
- apt_repository:
repo: "deb https://··· raring main"
state: presentمفاتيح المستودعات
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentمتعلق بـ Git
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesالمرجع: وحدة git
تكوين Git
- git_config:
name: user.email
scope: global # local | system
value: hi@example.comالمرجع: وحدة git_config
إدارة المستخدمين
- user:
state: present # الحالة: موجود
name: git # اسم المستخدم
system: yes # مستخدم نظام
shell: /bin/sh # غلاف تسجيل الدخول
groups: admin # المجموعات المنتمي إليها
comment: "Git Version Control" # تعليقالمرجع: وحدة user
إدارة الخدمات
- service:
name: nginx # اسم الخدمة
state: started # الحالة: مشغلة
enabled: yes # هل تعمل عند الإقلاعالمرجع: وحدة service
متعلق بـ Shell
أمر shell
- shell: apt-get install nginx -yخيارات إضافية
- shell: echo hello
args:
creates: /path/file # تخطي إذا كان الملف موجودًا
removes: /path/file # تخطي إذا كان الملف غير موجود
chdir: /path # الانتقال إلى هذا المجلد قبل التنفيذمثال على أوامر متعددة الأسطر
- shell: |
echo "hello there"
echo "multiple lines"المرجع: وحدة shell
تنفيذ السكربتات
- script: /x/y/script.sh
args:
creates: /path/file # تخطي إذا كان الملف موجودًا
removes: /path/file # تخطي إذا كان الملف غير موجود
chdir: /path # الانتقال إلى هذا المجلد قبل التنفيذالمرجع: وحدة script
عمليات الملفات
إدارة الملفات
- file:
path: /etc/dir
state: directory # النوع: مجلد|ملف|رابط|رابط صلب|touch|حذف
# معاملات اختيارية:
owner: bin # المالك
group: wheel # المجموعة
mode: 0644 # الصلاحيات
recurse: yes # إنشاء متكرر (Recursive)
force: yes # إجبار على إنشاء رابط رمزيالمرجع: وحدة file
نسخ الملفات
- copy:
src: /app/config/nginx.conf # الملف المصدر
dest: /etc/nginx/nginx.conf # الوجهة المستهدفة
# معاملات اختيارية:
owner: user # المالك
group: user # المجموعة
mode: 0644 # الصلاحيات
backup: yes # هل يتم النسخ الاحتياطيالمرجع: وحدة copy
القوالب (Templates)
- template:
src: config/redis.j2 # ملف القالب المصدر
dest: /etc/redis.conf # الوجهة المستهدفة
# معاملات اختيارية:
owner: user # المالك
group: user # المجموعة
mode: 0644 # الصلاحيات
backup: yes # هل يتم النسخ الاحتياطيالمرجع: وحدة template
العمليات المحلية
التنفيذ المحلي
- name: تنفيذ العملية محليًا
local_action: shell echo helloمخرجات التصحيح (Debug)
- debug:
msg: "Hello {{ var }}"المرجع: وحدة debug