يعتبر Ansible واحدة من ادوات الاتمتة وهي مبنية على Python وتعتبر مفتوحة المصدر (Open Source). تتميز Ansible أنها أداة بسيطة ويمكن استخدامها لعمل أتمتة الكثير من المهام المرتبطة بالشبكات من غير تعلم لغة برمجة جديدة. وبسبب أنها مفتوحة المصدر فهناك modules (أوامر لعمل مهام محددة) - متوفرة وجاهزة للمستخدم.
تستخدم Ansible ملفات من نوع YAML لتوصيف المهام المطلوبة وتتميز انها قريبة من لغة الإنسان، تسمى هذه الملفات playbooks لأنها تحمل وصف لجميع المهام (tasks) التي يريد مهندس الشبكات عملها
تتميز Ansible بوفرة modules الجاهزة وسهولة استخدام YAML للتعبير عن المهام المطلوبة وعدم الاحتياج لتعلم لغة برمجة جديدة لاستخدامها. لذلك هي مفضلة عند كثير من الناس التي لا تملك معرفة جيدة بلغات البرمجة وتريد عمل الاتمتة كمهندسي الشبكات.
هل هذا يعني أنه لا داعي لتعلم لغات البرمجة مثل Python؟
الإجابة قطعا لا والسبب انه رغم قوة Ansible لكنها ابطأ من Python في تنفيذ المهام ولهذا يكون تأثيرها سلبي في حالة تنفيذ المهام على عدد كبير من الأجهزة في الشبكة مثلا. نستطيع القول ايضا بأن اداة Ansible مناسبة لكثير من المهام الروتينية البسيطة، لكن في حالة تنفيذ مهام معقدة هنا قد نواجه مشكلة في استخدام Ansible لعملية الاتمتة. فمثلا لو اردنا القيام بالتحقق من أجهزة الشبكات وتطبيق عمليات مختلفة على كل نوع من أنواع الاجهزة, فأننا قد نواجه صعوبة في تنفيذها عن طريق Ansible.
الخلاصة أن Ansible قد تكون بداية أفضل لمن ليس لديه أي خلفية برمجية للدخول لعالم الاتمتة لسهولة تعلمها مقارنة بتعلم لغة برمجة مثل Python. لا ننسى بأن كثير من Ansible Modules مكتوبة بلغة Python وهي مفتوحة المصدر، بالتالي يستطيع المبرمجين والمطورين في تطوير Custom Module لتتناسب مع احتياجات الاتمتة المطلوبة في بيئته. طبعا هذا لا يعني ان Python لغة معقدة، لكنها تحتاج الى ممارسة حتى تكون سلاح قوي جدا جدا في يد مستخدمها.