TL ؛ DR | ميزات | ملفات تعريف مخصصة | اختبر ملف التعريف الخاص بك | الخيارات | المتطلبات | الاستقرار | OS OS | رخصة
![]()
![]()
إعداد Ansible تم اختباره جيدًا وقابل للتخصيص لتوفير محطة عملك مع Debian.
احصل على نظامك تحت السيطرة. إدارة الحزم غير المقدمة بشكل افتراضي وتتبع المستودعات وكذلك البرامج المثبتة. توفر أي حزمة مجمعة إمكانية لإدارتها بالكامل ، أي تأكد من تثبيتها أو إزالتها. بالطبع يمكنك أيضًا تجاهلهم ببساطة ، في حال كنت ترغب في إدارتها بنفسك.
إنه مصمم ليكون مديرًا عامًا (على عكس Dotfiles ). يمكنك إضافة أكبر عدد ممكن من الملفات الشخصية (على سبيل المثال: بالنسبة للأجهزة المختلفة على أجهزة الكمبيوتر المحمولة المختلفة) وأيضًا خيار لتوفيرها محليًا أو عبر الشبكة.
تأكد من أن نظامك يفي بالمتطلبات قبل البدء.
استخدم هذا لتوفير نظامك من نقطة الصفر ، عندما تكون قد قدمت بالفعل ملفك الشخصي في اتجاه المنبع. المتطلبات الوحيدة هي bash و sudo ، وسيتم تثبيت كل شيء آخر تلقائيًا.
# Provision default profile
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash
# Provision profile 'generic-all'
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash -s generic-allاستخدم هذا لتوفير نظامك من نقطة الصفر ، عندما لا يكون لديك ملف تعريف يتم تقديمه إلى المنبع حتى الآن.
# 1. Clone this project
git clone https://github.com/cytopia/ansible-debian
cd ansible-debian
# 2. Add your profile 'bob' (See 'Create custom profiles' section of this README)
# 3. Provision your system (with profile 'bob')
# Note when to use sudo and when not
sudo make deploy-init
make deploy-apt-sources PROFILE=bob
sudo make deploy-dist-upgrade
make deploy-tools PROFILE=bob # Dry-run everything for profile 'generic-all'
make diff-tools PROFILE=generic-all
# Dry-run everything for profile 'generic-all' without role 'systemd'
make diff-tools PROFILE=generic-all IGNORE=systemd
# Dry-run a specific role 'i3-gaps'
make diff-tools PROFILE=generic-all ROLE=i3-gapsيتيح لك هذا المستودع Ansible توفير آلات Debian الخاصة بك والحفاظ عليها على تحديث. يسمح لك بإنشاء ملفات تعريف مختلفة لآلات مختلفة ويوفر حزم غير متوفرة من قبل أي مستودع دبيان.
هذا هو توفير الأساس مع الافتراضات المعقولة التي يمكن تعديلها قليلا. ويقصه فقط كحذاء BuildFiles . من أجل تخصيص التطبيقات نفسها ، لا يزال يتعين عليك تطبيق dotfiles الشخصية على رأس ذلك.
| أداة | وصف |
|---|---|
| ذاتي | قابلة للتكوين وإخطار مساعد Autostart Helper لمديري النوافذ الحد الأدنى مثل I3 و OpenBox وغيرها |
| الكروم | يقوم بإعداد الكروم ، وحزم إضافية وكذلك ملحقات محددة من Chrome Webstore |
| Clipmenu | مدير الحافظة مع دمج dmenu أو rofi |
| dbeaver | عميل SQL العالمي |
| Diff-Highlight | أداة لإخراج git diff Awesome |
| عامل ميناء | Docker Repo and Package وأيضًا التأكد من إضافة المستخدم إلى docker Group |
| Docker-corm | تنزيل أحدث ثنائي docker-compose |
| ffscreencast | غلاف FFMPEG للتسجيل لسطح المكتب مع تراكب الفيديو ودعم Multi Monitor |
| Firefox | Firefox Quantum |
| FZF | سطر الأوامر Fuzzy Finder |
| gimp | gimp مع موضوع photoshop و keybindings |
| i3 | i3wm |
| i3 gaps | i3wm على المنشطات |
| i3-utils-bin | أدوات I3WM |
| i3-utils-systemd | ملفات SystemD لـ i3wm |
| i3blocks-modules | وحدات i3blocks رهيبة |
| kops | أداة سطر أوامر العمليات Kubernetes |
| kubectl | أداة سطر أوامر Kubernetes |
| libreoffice | Libreoffice 6 مع موضوع رمز MSOFFICE 2013 |
| LXDM | مدير تسجيل الدخول لليايت وايت |
| Neovim | vim على المنشطات |
| مدير الشبكة | GNOME'S LAN و WIFI Network Manager مع صينية نظام اختيارية |
| أوه-يا زيش | إطار عمل مبهج يحركه المجتمع لإدارة تكوين ZSH الخاص بك. |
| باكر | Packer من Hashicorp لإنشاء آلات آلية |
| بينتا | Open Source Paint.net / Mspaint Clone. |
| الحارس | مدير ملفات سطر الأوامر مع معاينة الصور المضمنة (يمكن أيضًا استخدامها كمدير ملف VIM) |
| سكايب | سكايب ريبو وحزمة |
| سامي | ريبو سامي وحزمة |
| SXIV | عارض الصور الصغيرة والسريعة والمنخفضة الاعتماد مع الربط VIM |
| Systemd | إدارة خدمات SystemD الممكّنة والتعطيل والملغاط |
| برقية | برقية سطح المكتب ريبو وحزمة |
| terraform | البنية التحتية لشركة Hashicorp كمصفر |
| ثونار | ثونار ومتطلباتها للتعامل مع الأقراص الخارجية وكذلك الأقراص المشفرة |
| أفعال ثونار العظم | الإجراءات المخصصة الثونار |
| ثندربيرد | Thunderbird والمواد الإضافية المحددة عالميًا |
| Timemachine | OSX مثل Timemachine لخط الأوامر |
| urxvt | صغير وسريع وزر لايت 256 ملون محاكي طرف يونيكود |
| VirtualBox | VirtualBox مستودع وحزم Opstream |
| Xbacklight | استبدال Cross-GPU Xbacklight الحديث |
| XDG-Mime-Meta | يحدد التطبيقات الافتراضية لـ XDG-Open |
| xorg | Xorg وتبعياته وكذلك تكوينات لوحات GPU ومسطح اللمس |
| زاتورا | عارض PDF صغير وسريع ومنخفض الاعتماد مع روابط VIM |
| أداة | وصف |
|---|---|
| font-droid-sans-mono | droidsansmono nerdfont مع العديد من الرسوم الحربية ورموز يونيكود |
| خط الولادة | Fontawesome كخط نظام |
| Font-San-Francisco | Osx Yosemite San Francisco Font |
| الطرف الخط | Terminus nerdfont مع العديد من Glyphcs ورموز Unicode |
| الخط | الخط الرسمي لأوبونتو |
| أيقونة موكا | موضوعات أيقونة موكا (ل thunar أو nautilus) |
| موضوع | موضوع القوس لـ GTK2 و GTK3 و Chrome وغيرها |
انظر الأدوار/ الدليل لجميع الحزم المتاحة. إذا كنت في عداد المفقودين ، افتح مشكلة أو طلب سحب.
بالإضافة إلى ذلك ، يمكنك (ولكن لا تضطر إلى) إدارة ما يلي:
من أجل تخصيص محطة العمل أو البنية التحتية Debian ، يمكنك إنشاء ملفات تعريف لكل من أجهزتك. قد يكون هذا ضروريًا بسبب تفضيلات الأجهزة أو البرامج المختلفة. يمثل كل اسم مضيف (حقيقي أو مكون) في ملف المخزون ملف تعريف واحد تلقائيًا.
بالمناسبة يعمل Ansible ، يرث كل ملف تعريف جميع الإعدادات من group_vars/all.yml. يحمل هذا الملف افتراضيًا عاقلًا يوضح لك جميع الخيارات المتاحة ومع جميع الحزم دون إدارتها.
من أجل تخصيص ملفك الشخصي بالفعل ، سيتعين عليك إنشاء ملف في Host_vars/ بنفس الاسم الذي حددته في المخزون. يمكنك نسخ group_vars/all.yml مباشرة أو استخدام ملف تعريف موجود بالفعل من host_vars ، مثل Host_vars/generic-all.yml.
لفهم كيفية عمله بشكل أفضل ، يمكنك متابعة هذا المثال خطوة بخطوة لإنشاء ملف تعريف جديد:
من أجل هذا المثال ، دعنا نفترض أن ملف التعريف الخاص بك يسمى dell-xps-i3wm .
أضف السطر التالي إلى أسفل المخزون:
dell-xps-i3wm ansible_connection=local ansible_connection=local أنه يجب تطبيق ملفك الشخصي على الكمبيوتر المحلي. إذا كنت ترغب في إنشاء ملف تعريف لجهاز كمبيوتر بعيد ، فيجب أن يكون اسم ملف التعريف الخاص بك اسم مضيف أو عنوان IP يمكن من خلاله الوصول إلى الجهاز البعيد عبر الشبكة.
كما ذكرنا سابقًا ، يمكنك نسخ Group_vars/all.yml أو ملف host_vars الموجود بالفعل.
استخدم group_vars/all.yml كقالب افتراضي:
cp group_vars/all.yml host_vars/dell-xps-i3wm.ymlاستخدم ملف Host_vars الموجود بالفعل كقالب افتراضي:
cp host_vars/generic-all.yml host_vars/dell-xps-i3wm.yml ما عليك سوى تحرير host_vars/dell-xps-i3wm.yml وضبط القيم على احتياجاتك. إذا قمت بنسخ ملف موجود بالفعل ، فسيحتوي على تعليقات لجميع خيارات التكوين الممكنة التي تتيح لك أن ترى بسرعة ماذا وكيفية التغيير.
إذا كنت ترغب في اختبار ملف التعريف الخاص بك في حاوية Docker قبل توفير نظامك الخاص فعليًا ، فانتقل إلى القسم التالي ، وإلا فقط قم بتشغيل الأوامر التالية.
قم بتشغيل الأمر التالي لمعرفة ما سيحدث:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-pass --checkقم بتشغيل الأمر التالي لتطبيق ملف التعريف الخاص بك بالفعل:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-passقبل تشغيل أي ملف تعريف جديد فعليًا على نظامك الخاص ، يمكنك أن تختبر ذلك مسبقًا. يمكن القيام بذلك في حاوية Docker أو في مربع متشرد لمعرفة ما إذا كان كل شيء يعمل كما هو متوقع. قد يكون هذا أيضًا مفيدًا للغاية في حال إنشاء دور جديد وتريد معرفة ما إذا كان يعمل.
ملاحظة: ستكون صورة Docker دائمًا بناء تلقائيًا قبل إجراء الاختبارات.
قبل الجري ، يجب أن تكون على دراية ببعض الحجج التي يمكن تطبيقها على make . انظر الجدول أدناه:
| عامل | مطلوب | وصف |
|---|---|---|
PROFILE | نعم | اسم مضيف المخزون (ملفك الشخصي) |
VERBOSE | لا | الأنص القسم. قيم صالحة: 0 ، 1 ، 2 أو 3 |
ROLE | لا | قم بتشغيل هذه العلامة المحددة فقط (اسم الدور) |
قم بإجراء اختبار كامل للملف الشخصي generic-all :
make test-docker-full PROFILE=generic-all قم بإجراء اختبار كامل للملف الشخصي generic-all بالترتيب العشوائي:
make test-docker-random PROFILE=generic-all فقط قم بتشغيل دور i3-gaps في ملف generic-all
make test-docker-single PROFILE=generic-all ROLE=i3-gapsإذا كنت لا تثق في الاختبارات في Docker وتريد رؤية النتائج النهائية بيانياً في VM ، فيمكنك أيضًا استخدام Vagrant لفعل الشيء نفسه.
make test-vagrant PROFILE=generic-all ابحث عن قسم الحزمة وقم بتعيينها على الحالة المطلوبة. install أو remove أو أي قيمة أخرى لتجاهلها.
$ vi host_vars/ < name > .yml...
i3-gaps : ' install '
font_ubuntu : ' install '
diff_highlight : ' install '
docker : ' remove '
docker_compose : ' remove '
skype : ' ignore '
sublime : ' ignore '
...تأتي العديد من الحزم أيضًا مع خيارات يمكنك تعديلها. يمكنك على سبيل المثال تحديد إصدار Python الذي يجب أن يوفره نظامك:
$ vi host_vars/ < name > .yml...
python_2 : yes
python_3 : yes
...يمكن أن يكون التخصيص الآخر هو البرنامج الافتراضي الذي يجب استخدامه عند فتح أنواع ملفات speficif:
$ vi host_vars/ < name > .yml...
xdg_mime_defaults :
- desktop_file : chromium.desktop
mime_types :
- text/html
- text/xml
- application/xhtml_xml
- application/x-mimearchive
- x-scheme-handler/http
- x-scheme-handler/https
... أو لضبط DPI والخيارات الأخرى لـ lxdm
$ vi host_vars/ < name > .yml...
lxdm_dpi : 132
lxdm_gtk_theme : Arc-Darker
lxdm_show_user_list : no
...اختر برنامج GPU الخاص بك وسائق لوحة اللمس:
$ vi host_vars/ < name > .yml # Supported values: 'amdgpu' 'ati' 'intel' 'modesetting' 'nouveau' 'nvidia' 'radeon'
xorg_gpu : modesetting
# Enable VDPAU_DRIVER=va_gl systemwide
xorg_gpu_vdpau_va_gl_enable : yes
# 'libinput' or 'synaptics'
xorg_touchpad_enable : yes
xorg_touchpad_driver : ' synaptics '
...قبل أن تتمكن من البدء ، هناك بعض الأدوات المطلوبة التي يجب أن تكون موجودة على النظام. ما عليك سوى نسخ تلك الأوامر كجذر في المحطة الخاصة بك.
apt-get update
apt-get install --no-install-recommends --no-install-suggests -y
make
sudo
تأكد من السماح للمستخدم بتشغيل sudo
usermod -aG sudo <username>
من أجل ضمان الاستقرار الأكثر إمكانية لهذا الإعداد ، تم تعريف عمليات فحص Travis-CI المكثفة التي يتم تشغيلها تلقائيًا كل ليلة. يتم تشغيل هذه الاختبارات داخل حاوية Docker. تم تعريف حالات الاختبار التالية:
إذا كنت تقوم بتشغيل نظام تشغيل مختلف ولا تزال ترغب في توفير نظامك باستخدام ANSIBLE ، فقم بإلقاء نظرة على المشاريع المماثلة التالية:
لا تتردد في المساهمة وإضافة أدوار جديدة حسب الرغبة. عند القيام بذلك ، ألق نظرة على المساهمة. md للحصول على أفضل الممارسات المطلوبة.
رخصة معهد ماساتشوستس للتكنولوجيا
حقوق الطبع والنشر (C) 2017 Cytopia