Ansible Tower / AWX / Automation controller Security
Temel Bilgiler
Ansible Tower veya açık kaynak versiyonu AWX aynı zamanda Ansible'ın kullanıcı arayüzü, gösterge tablosu ve REST API'si olarak bilinir. Rol tabanlı erişim kontrolü, iş zamanlaması ve grafiksel envanter yönetimi ile Ansible altyapınızı modern bir kullanıcı arayüzünden yönetebilirsiniz. Tower'ın REST API'si ve komut satırı arayüzü, mevcut araçlar ve iş akışlarına entegre etmeyi kolaylaştırır.
Otomasyon Denetleyicisi, daha fazla yeteneğe sahip yeni bir Ansible Tower sürümüdür.
Farklar
Bu kaynağa göre, Ansible Tower ve AWX arasındaki temel farklar, alınan destek ve Ansible Tower'ın rol tabanlı erişim kontrolü, özel API'ları destekleme ve kullanıcı tanımlı iş akışları gibi ek özelliklere sahip olmasıdır.
Teknoloji Yığını
Web Arayüzü: Kullanıcıların envanterleri, kimlik bilgilerini, şablonları ve işleri yönetebileceği grafik arayüzüdür. Kullanıcıların otomasyon işlerinin durumunu ve sonuçlarını anlamalarına yardımcı olmak için görselleştirmeler sunar.
REST API: Web arayüzünde yapabileceğiniz her şeyi REST API üzerinden de yapabilirsiniz. Bu, AWX/Tower'ı diğer sistemlerle entegre etmenizi veya genellikle arayüzde gerçekleştireceğiniz işlemleri betikleştirmenizi sağlar.
Veritabanı: AWX/Tower, yapılandırmasını, iş sonuçlarını ve diğer gerekli işletme verilerini depolamak için bir veritabanı (genellikle PostgreSQL) kullanır.
RabbitMQ: Bu, AWX/Tower'ın farklı bileşenler arasında iletişim kurmak için kullandığı mesajlaşma sistemidir, özellikle web hizmeti ile görev çalıştırıcılar arasında.
Redis: Redis, bir önbellek ve görev kuyruğu için bir arka uç olarak hizmet verir.
Mantıksal Bileşenler
Envanterler: Bir envanter, işlerin (Ansible oynatma kitapları) çalıştırılabileceği ana bilgisayarların (veya düğümlerin) bir koleksiyonudur. AWX/Tower, envanterlerinizi tanımlamanıza ve gruplandırmanıza olanak tanır ve ayrıca AWS, Azure vb. gibi diğer sistemlerden ana bilgisayar listelerini alabilen dinamik envanterleri destekler.
Projeler: Bir proje, ihtiyaç duyulduğunda en son oynatma kitaplarını çekmek için bir sürüm kontrol sisteminden (Git gibi) alınan Ansible oynatma kitaplarının bir koleksiyonudur.
Şablonlar: İş şablonları, belirli bir oynatma kitabının nasıl çalıştırılacağını belirler, iş için gerekli envanteri, kimlik bilgilerini ve diğer parametreleri belirtir.
Kimlik Bilgileri: AWX/Tower, SSH anahtarları, şifreler ve API belirteçleri gibi sırları yönetmek ve depolamak için güvenli bir yol sağlar. Bu kimlik bilgileri, oynatma kitapları çalıştığında gerekli erişime sahip olması için iş şablonlarıyla ilişkilendirilebilir.
Görev Motoru: Burada sihir gerçekleşir. Görev motoru, Ansible üzerine inşa edilmiştir ve oynatma kitaplarını çalıştırmaktan sorumludur. İşler, belirtilen envanteri kullanarak belirtilen kimlik bilgilerini kullanarak Ansible oynatma kitaplarını çalıştırmak üzere görev motoruna gönderilir.
Zamanlayıcılar ve Geri Çağrılar: Bunlar, belirli zamanlarda çalıştırılacak işleri zamanlamak veya dış etkinlikler tarafından tetiklenmesini sağlamak için AWX/Tower'da bulunan gelişmiş özelliklerdir.
Bildirimler: AWX/Tower, işlerin başarısı veya başarısızlığına bağlı olarak bildirimler gönderebilir. E-postalar, Slack mesajları, web kancaları vb. gibi çeşitli bildirim yöntemlerini destekler.
Ansible Oynatma Kitapları: Ansible oynatma kitapları, yapılandırma, dağıtım ve orkestrasyon araçlarıdır. Otomatik, tekrarlanabilir bir şekilde sistemlerin istenen durumunu tanımlarlar. YAML'de yazılan oynatma kitapları, yapılandırmaları, görevleri ve adımları açıklamak için Ansible'ın deklaratif otomasyon dilini kullanır.
İş Yürütme Akışı
Kullanıcı Etkileşimi: Bir kullanıcı, AWX/Tower'a Web Arayüzü veya REST API aracılığıyla etkileşimde bulunabilir. Bu, AWX/Tower tarafından sunulan tüm işlevlere ön uç erişimi sağlar.
İş Başlatma:
Kullanıcı, Web Arayüzü veya API aracılığıyla, bir İş Şablonuna dayalı olarak bir iş başlatır.
İş Şablonu, Envanter, Proje (oynatma kitabını içeren) ve Kimlik Bilgilerine referanslar içerir.
İş başlatıldığında, işi yürütmek için bir istek, işi sıraya almak üzere AWX/Tower arka uçuna gönderilir.
İş Sıralama:
RabbitMQ, web bileşeni ile görev çalıştırıcılar arasındaki iletişimi yönetir. Bir iş başlatıldığında, bir mesaj, RabbitMQ kullanılarak görev motoruna iletilir.
Redis, sıraya alınan işleri yöneterek görev kuyruğu için bir arka uç görevi görür.
İş Yürütme:
Görev Motoru, sıraya alınan işi alır. İşin ilişkili oynatma kitabı, envanter ve kimlik bilgileri hakkındaki gerekli bilgileri Veritabanı'ndan alır.
İlişkili Projeden alınan Ansible oynatma kitabını kullanarak Görev Motoru, belirtilen Envanter düğümleri karşısında oynatma kitabını çalıştırır ve sağlanan Kimlik Bilgilerini kullanır.
Oynatma kitabı çalıştıkça, yürütme çıktısı (loglar, gerçekler vb.) yakalanır ve Veritabanı'nda depolanır.
İş Sonuçları:
Oynatma kitabı çalışmayı bitirdiğinde, sonuçlar (başarı, başarısızlık, loglar) Veritabanı'na kaydedilir.
Kullanıcılar daha sonra sonuçları Web Arayüzü üzerinden görüntüleyebilir veya REST API aracılığıyla sorgulayabilir.
İş sonuçlarına bağlı olarak, işle ilgili durumu kullanıcıları veya harici sistemleri bilgilendirmek için Bildirimler gönderilebilir. Bildirimler, e-postalar, Slack mesajları, web kancaları vb. olabilir.
Harici Sistemler Entegrasyonu:
Envanterler, AWS, Azure, VMware ve daha fazlası gibi kaynaklardan ana bilgisayarları içe çekebilen dış sistemlerden dinamik olarak alınabilir.
Projeler (oynatma kitapları), sürüm kontrol sistemlerinden alınabilir, iş yürütme sırasında güncel oynatma kitaplarının kullanılmasını sağlar.
Zamanlayıcılar ve Geri Çağrılar, diğer sistemler veya araçlarla entegre olmak için kullanılabilir, AWX/Tower'ın dış tetikleyicilere tepki vermesini veya belirlenmiş zamanlarda işleri çalıştırmasını sağlar.
Test için AWX laboratuvarı oluşturma
Belgeleri takip ederek, AWX'ı çalıştırmak için docker-compose kullanmak mümkündür:
RBAC
Desteklenen roller
En ayrıcalıklı rol Sistem Yöneticisi olarak adlandırılır. Bu role sahip olan herkes herhangi bir şeyi değiştirebilir.
Beyaz kutu güvenliği incelemesinden, Sistem Denetçisi rolüne ihtiyacınız olacaktır, bu rol tüm sistem verilerini görüntülemeyi sağlar ancak herhangi bir değişiklik yapamaz. Başka bir seçenek Organizasyon Denetçisi rolü almak olabilir, ancak diğerini almak daha iyi olacaktır.
Last updated