Sunucuları kontrol etmek için Ansible’ı Ubuntu, Debian ve CentOS’a yükleme
Ansible, sunucuları ve ağları yapılandırmak, yönetmek ve otomatikleştirmek için kullanılan güçlü bir Sunucuları kontrol etmek açık kaynaklı araçtır. Basit YAML dilini ve bildirim ilkelerini kullanan Ansible, sunucuları verimli ve tekrarlanabilir bir şekilde yapılandırmanıza ve yönetmenize olanak tanır.
Ansible’ı Ubuntu’ya yüklemek için resmi Ansible kaynağını kullanmanız ve apt paket yönetimi aracını kullanarak Ansible’ı yüklemeniz gerekir. Debian’da Ansible’ı resmi Debian varsayılan kaynağından yükleyebilirsiniz. CentOS’ta Ansible’ı kurmak için EPEL depolarını kullanmanız gerekir.
Geçmişte, sunucuların yapılandırılması ve yönetilmesi genellikle özel araçlar ve komut dosyaları kullanılarak manuel olarak yapılıyordu; bu, zaman alıcı ve karmaşık olabiliyordu, bu da sunucu performansını ve yapılandırmasını iyileştirme yeteneğini sınırlıyordu. Ansible’ı kullanarak sunucuları otomatikleştirebilir, etkili bir şekilde yapılandırabilir ve yönetebilirsiniz.
Ansible’ın kullanımı kolaydır. Çünkü anlaşılır ve okunabilir YAML dilini kullanıyor. Bu, farklı ayarları ve görevleri kolayca tanımlamanıza olanak tanır. Öte yandan Ansible’ın hedef sunucuya herhangi bir özel yazılım yüklemesine gerek yoktur ve sunucularla iletişim kurmak için SSH’yi kullanır ve hedef sunuculara herhangi bir harici yazılım yüklemesine gerek yoktur. Bu, Ansible’ın farklı türdeki sunucular ve işletim sistemleriyle uyumlu olmasını sağlar. Ansible, Aracısız mimariyi kullanır ve hedef sunuculara bir aracı yüklemesine gerek kalmaz. Bu, sunucu sayısını kolayca artırmanıza ve bunları yönetmek için Ansible’ı kullanmanıza olanak tanır.
Ansible’ın otomasyon yeteneği, görevleri ve yapılandırma görevlerini otomatik olarak tanımlama ve yürütme yeteneği sağlar. Bu araç, tekrarlanan işlemleri iyileştirmenize ve sunucuları yönetirken daha fazla zaman ve emekten tasarruf etmenize olanak tanır.
Bu nedenle Ansible’ı yüklemek ve kullanmak, sunucuların yapılandırma ve yönetim süreçlerini daha basit, daha etkili ve tekrarlanabilir hale getirmenize ve sistemlerinizin verimliliğini ve performansını önemli ölçüde artırmanıza yardımcı olabilir. Eğer Ubuntu, Debian ve CentOS dağıtımlarını kullanıyorsanız bu yazımızı sonuna kadar okuyabilirsiniz.
İçindekiler
Ansible’ın Ubuntu ve Debian’a Kurulumu
Kullandığınız Linux dağıtımı Ubuntu veya Debian ise Ansible kurulumu için de aynı adımları uygulamanız gerekmektedir. Ansible’ı Ubuntu ve Debian’a kurma adımlarını sizlere getirdik.
Ansible’ı Ubuntu ve Debian’a yüklemek için önkoşullar
Bu öğreticiyi takip etmek için aşağıdakilere ihtiyacınız olacak:
Linux sunucusu: Ansible’ı Linux sunucunuza kurmak için Ubuntu, Debian veya CentOS gibi farklı dağıtımları kullanabilirsiniz. Bu Linux sunucusu aşağıdaki özelliklere sahip olmalıdır:
Sudo erişimine sahip, root olmayan bir kullanıcı
Ansible kontrol sunucunuz olarak uzak bir sunucu kullanıyorsanız bu kılavuzun her adımını izlemeniz gerektiğini lütfen unutmayın. Bu , ufw kullanarak sunucuda bir güvenlik duvarı kuracak ve root olmayan kullanıcı profilinize harici erişimi etkinleştirecektir; bunların her ikisi de uzak sunucunun güvenliğinin sağlanmasına yardımcı olacaktır. Bu kullanıcıyla ilişkili bir SSH anahtar çifti. Bunu ayarlamak için Ubuntu 20.04’te SSH anahtarlarının nasıl kurulacağına ilişkin kılavuzumuzun 1. adımını takip edebilirsiniz.
Bir veya daha fazla Ansible ana bilgisayarı
Ansible ana bilgisayarı, Ansible kontrol düğümünüzün otomatik olarak çalışacak şekilde yapılandırıldığı herhangi bir makinedir. Bu kılavuz, Ansible ana bilgisayarlarınızın uzak Ubuntu 20.04 sunucuları olduğunu varsayar. Her Ansible ana bilgisayarının aşağıdakileri içerdiğinden emin olun:
Ansible kontrol düğümünün SSH genel anahtarını bir sistem kullanıcısının yetkili_anahtarlarına ekleyin. Bu kullanıcı root veya sudo erişimi olan normal bir kullanıcı olabilir. Ubuntu’da SSH kurulumu nasıl yapılır diye düşünüyorsanız yazımızı ziyaret edebilirsiniz.
(Eğer bu özelliklere sahip bir sunucunuz yoksa Linux sanal sunucu satın alma sayfamızı ziyaret ederek farklı planlar arasından kendinize en uygun planı seçebilirsiniz.)
1. Adım. Ansible’ı yükleyin
Yapmanız gereken ilk şey Ansible’ı kurmak.
Sunucu altyapınızı yönetmenin bir yolu olarak Ansible’ı kullanmaya başlamak için, Ansible kontrol düğümü olarak görev yapacak makineye Ansible yazılımını yüklemeniz gerekir.
Projenin resmi Kişisel Paket Deposunu (PPA) sistem kaynağı listenize eklemek için kontrol düğümünüzden aşağıdaki komutu çalıştırın.
sudo apt-add-repository ppa:ansible/ansible
Bilgi istemi görüntülendikten sonra PPA eklemeyi onaylamak için ENTER düğmesine basın.
Ardından sisteminizin paket listesini güncellemek için sistemi güncelleyin ve şu ana kadar eklenen PPA’daki paketlerden haberdar olmasını sağlayın.
sudo apt update
Bu güncellemeden sonra Ansible yazılımını aşağıdakilerle yükleyebilirsiniz:
sudo apt install ansible
Ansible kontrol düğümünüz artık barındırma hizmetinizi yönetmek için ihtiyaç duyduğunuz tüm yazılıma sahiptir . Bir sonraki adımda, ana bilgisayarlarımızı kontrol edebilmesi için kontrol düğümünün envanter dosyasına nasıl ekleyeceğimizi tartışacağız.
2. Adım. Ansible ana bilgisayarlarını yapılandırın
Ansible, bildiği tüm sunucuları “hosts” adı verilen bir dosyada tutar. Envanterinize birden fazla yüze kadar sunucuyu herhangi bir yere koyabilir ve ana bilgisayarları gruplara ve alt gruplara ayırabilirsiniz. Ayrıca envanter dosyası, yalnızca belirli ana bilgisayarlar veya gruplar için geçerli olan ve oyun kitapları ve şablonlar içinde kullanılan değişkenleri ayarlamak için yaygın olarak kullanılır. ansible_python_interpreter
Birazdan göreceğimiz değişken gibi bazı değişkenler, bir taktik kitabının nasıl yürütüleceğini de etkileyebilir .
Varsayılan Ansible envanter dosyasının içeriğini düzenlemek için, /etc/ansible/hosts
favori metin düzenleyicinizi kullanarak dosyayı Ansible denetleyicinizde açın.
sudo nano /etc/ansible/hosts
Not: Ansible normalde etc/ansible/hosts
yolda varsayılan bir envanter dosyası oluştursa da, envanter dosyalarını ihtiyaçlarınızı en iyi karşılayan başka herhangi bir yolda oluşturmanıza izin verilir. Bu durumda, Ansible komutlarını ve çalışma kitaplarını çalıştırırken -i parametresini kullanarak özel envanter dosyanızın yolunu sağlamanız gerekir. Proje başına envanter dosyalarının kullanılması, bir taktik kitabının yanlış sunucu grubunda çalıştırılması riskini azaltmanın iyi bir yoludur.
Ansible tarafından sağlanan varsayılan envanter dosyalarında, kendi envanterinizi oluştururken referans olarak kullanabileceğiniz çok sayıda örnek bulunur.
Aşağıdaki örnek, her biri özel bir takma adla tanımlanan üç farklı sunucunun bulunduğu [sunucuları] adlı bir grubu tanımlar: sunucu1, sunucu2 ve sunucu3. Vurgulanan IP’leri Ansible ana makinenizin IP adresleriyle değiştirdiğinizden emin olun.
[servers]
server1 ansible_host=203.0.113.111
server2 ansible_host=203.0.113.112
server3 ansible_host=203.0.113.113
[all:vars]
ansible_python_interpreter=/usr/bin/python3
Alt grup, bu listedeki tüm ana bilgisayarlar için geçerli olan all:vars
ana bilgisayar parametre değişkenlerini ansible_python_interpreter
belirtir . Python 3 /usr/bin/python3
Bu parametre, sunucunun, Ubuntu’nun daha yeni sürümlerinde bulunmayan Python yerine Python yürütülebilir dosyasını /usr/bin/python (Python 2.7)
kullanmasını sağlar.
İşiniz bittiğinde değişiklikleri kaydedin ve CTRL+X, ardından Y ve ENTER tuşlarına basarak dosyayı kapatın.
Bakiyenizi kontrol etmek istediğinizde şunları çalıştırabilirsiniz:
ansible-inventory --list –y
Buna benzer ancak envanter dosyanızda tanımlandığı şekilde kendi sunucu altyapınızı içeren bir çıktı göreceksiniz:
all:
children:
servers:
hosts:
server1:
ansible_host: 203.0.113.111
ansible_python_interpreter: /usr/bin/python3
server2:
ansible_host: 203.0.113.112
ansible_python_interpreter: /usr/bin/python3
server3:
ansible_host: 203.0.113.113
ansible_python_interpreter: /usr/bin/python3
ungrouped: {}
Artık envanter dosyanızı yapılandırdığınıza göre, Ansible ana makinenize bağlanmayı test etmek için ihtiyacınız olan her şeye sahipsiniz.
üçüncü seviye. Bağlantı testi
Varlık dosyasını sunucularınızı içerecek şekilde ayarladıktan sonra, Ansible’ın bu sunuculara bağlanıp bağlanamadığını ve SSH aracılığıyla komutları çalıştırıp çalıştırmadığını kontrol etme zamanı geldi.
Bu kılavuzda Ubuntu kök hesabını kullanacağız çünkü bu, genellikle yeni oluşturulan sunucularda varsayılan olarak kullanılabilen tek hesaptır. Ansible ana bilgisayarlarınızda zaten oluşturulmuş normal bir sudo kullanıcısı varsa bunun yerine bu hesabı kullanmanız önerilir.
Uzak sistem kullanıcısını belirtmek için -u bağımsız değişkenini kullanabilirsiniz. Sağlanmadığında Ansible, kontrol düğümünde mevcut sistem kullanıcınız olarak bağlanmaya çalışacaktır.
Yerel bilgisayarınızdan veya Ansible kontrol düğümünüzden şunu çalıştırın:
ansible all -m ping -u root
Bu komut, varsayılan örneğinizdeki tüm düğümlerde bir bağlantı testi çalıştırmak ve onlara root olarak bağlanmak için Ansible’ın popüler ping modülünü kullanacaktır. Ping modülü aşağıdakileri test eder:
- Hostlar müsait mi?
- Geçerli SSH giriş bilgileriniz var mı?
- Ana bilgisayarlar Ansible modüllerini Python kullanarak çalıştırabilir mi?
Şuna benzer bir çıktı almalısınız:
server1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
server2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
server3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
Bu sunuculara SSH aracılığıyla ilk kez bağlanıyorsanız, bağlandığınız ana bilgisayarların kimliğini Ansible aracılığıyla doğrulamanız istenecektir. Bu mesajı gördüğünüzde evet yazın ve onaylamak için ENTER tuşuna basın.
Bir ana bilgisayardan “pong” yanıtı aldıktan sonra bu, o sunucuda Ansible komutlarını ve kitaplıklarını çalıştırmaya hazır olduğunuz anlamına gelir.
Not: Sunucularınızdan başarılı bir yanıt alamadıysanız Ansible komutlarını farklı bağlantı seçenekleriyle çalıştırma hakkında daha fazla bilgi edinmek için Ansible hile kılavuzumuza göz atın.
4. Adım. Geçici Komutları Çalıştırın (İsteğe Bağlı)
Ansible kontrol düğümünüz ile ana bilgisayarlarınız arasındaki bağlantıyı doğruladıktan sonra, sunucularınızda geçici komutlar ve kitaplıklar çalıştırmaya başlayabilirsiniz.
Normalde uzak bir sunucuda SSH aracılığıyla çalıştıracağınız herhangi bir komut, varlık seti dosyanızda belirtilen sunucularda Ansible kullanılarak çalıştırılabilir. Örneğin aşağıdaki komutu kullanarak tüm sunuculardaki disk kullanımını kontrol edebilirsiniz:
ansible all -a "df -h" -u root
Çıktı:
server1 | CHANGED | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 798M 624K 798M 1% /run
/dev/vda1 155G 2.3G 153G 2% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda15 105M 3.6M 101M 4% /boot/efi
tmpfs 798M 0 798M 0% /run/user/0
server2 | CHANGED | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 395M 608K 394M 1% /run
/dev/vda1 78G 2.2G 76G 3% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda15 105M 3.6M 101M 4% /boot/efi
tmpfs 395M 0 395M 0% /run/user/0
...
Belirtilen komut df -h
istediğiniz herhangi bir komutla değiştirilebilir.
Ansible modüllerini, daha önce bağlantı testi için ping modülüyle yaptığımıza benzer şekilde geçici komutlar aracılığıyla da çalıştırabilirsiniz. Örneğin, vim’in en son sürümünü sunucu listesindeki tüm sunuculara yüklemek için apt modülünü şu şekilde kullanabiliriz :
ansible all -m apt -a "name=vim state=latest" -u root
Ayrıca Ansible komutlarını çalıştırırken tüm ana bilgisayarların yanı sıra grupları ve alt grupları da hedefleyebilirsiniz. Örneğin, sunucu grubundaki her ana bilgisayarın çalışma süresini şu şekilde kontrol edebilirsiniz:
ansible servers -a "uptime" -u root
Birden fazla ana bilgisayarı noktalı virgül kullanarak ayırabiliriz:
ansible server1:server2 -m ping -u root
Ansible’ın CentOS’a Kurulumu
Ansible’ı CentOS’a kurmak için herhangi bir özel bilgiye ihtiyacınız yok; Aşağıdaki adımları takip ederek kolaylıkla kurulumu gerçekleştirebilirsiniz.
Ansible’ı CentOS’a yüklemek için önkoşullar
Bu öğreticiyi takip etmek için aşağıdakilere ihtiyacınız vardır:
Bir CentOS 7 sunucusu satın alın ve root olmayan bir kullanıcı oluşturun ve sunucuya şifre olmadan bağlanabildiğinizden emin olun ( bunu Linux sanal sunucu satın alma sayfasından yapabilirsiniz).
1. Adım. Ansible’ı yükleyin
Burada Ansible’ı CentOS 7’ye kuruyoruz. CentOS 7 için Ansible sürümünü edinmek için öncelikle CentOS 7 EPEL depolarının kurulu olduğundan emin olun:
sudo yum install epel-release
Depoyu yükledikten sonra Ansible’ı yum kullanarak yükleyin:
sudo yum install ansible
Artık sunucularımızı Ansible aracılığıyla yönetmek için gereken tüm yazılıma sahibiz.
2. Adım. Ansible ana bilgisayarlarını yapılandırın
Ansible, bildiği tüm sunucularla bir “hosts” dosyası aracılığıyla iletişim kurar. Diğer bilgisayarlarımızla iletişime geçmeden önce öncelikle bu dosyayı yapılandırmamız gerekiyor.
Bunu yapmak için dosyayı şu şekilde kök ayrıcalıklarıyla açın:
sudo vi /etc/ansible/hosts
Açıklayıcı bir şekilde açıklanan birçok örnek ayarın bulunduğu bir dosya göreceksiniz. Gelecekte daha karmaşık senaryolar uygulamak istiyorsanız Ansible’ı yapılandırmayı öğrenmenize yardımcı olması için bu örnekleri dosyanızda saklayın.
Hosts dosyası nispeten esnektir ve birkaç farklı şekilde yapılandırılabilir. Ancak kullanacağımız yöntem şunun gibi bir şey:
[group_name]
alias ansible_ssh_host=your_server_ip
Grup adı (group_name), altında listelenen herhangi bir sunucuya tek bir kelime kullanarak başvurmanıza olanak tanıyan organizasyonel bir etikettir. Takma ad yalnızca o sunucuya atıfta bulunan bir addır.
Ansible’ı kullanarak kontrol etmek istediğiniz üç sunucunuz olduğunu düşünün. Ansible, istemci bilgisayarlarla SSH aracılığıyla iletişim kurar; dolayısıyla yönetmek istediğiniz herhangi bir sunucuya, Ansible sunucusu aracılığıyla aşağıdakileri yazarak erişilebilir olmanız gerekir:
ssh root@your_server_ip
Sizden şifre istenmemelidir. Ansible kesinlikle parola tabanlı SSH kimlik doğrulamasını gerçekleştirme yeteneğine sahip olsa da, SSH anahtarlarını kullanmak işleri basitleştirmeye yardımcı olur. Her ana bilgisayara SSH anahtarlarını henüz yüklemediyseniz.
Sunucularımızın IP adreslerinin sırasıyla 192.0.2.1, 192.0.2.2 ve 192.0.2.3 olduğunu varsayıyoruz. Bunu, bunlara ayrı ayrı ana bilgisayar1, ana bilgisayar2 ve ana bilgisayar3 olarak veya ad sunucularıyla birlikte grup olarak başvurabilecek şekilde ayarlayalım. Bunu yapılandırmak için bu bloğu hosts dosyanıza eklemeniz gerekir:
[servers]
host1 ansible_ssh_host=192.0.2.1
host2 ansible_ssh_host=192.0.2.2
host3 ansible_ssh_host=192.0.2.3
Toplantı sahipleri birden fazla grupta olabilir ve gruplar, tüm üyeleri için parametreleri yapılandırabilir. Şimdi şunu deneyelim.
Varsayılan olarak Ansible, mevcut kullanıcı adınızı kullanarak uzak ana bilgisayarlara bağlanmaya çalışır. Eğer bu kullanıcı uzaktaki sistemde mevcut değilse, bağlantı denemesi şu hatayla sonlandırılır:
Ansible connection error
host1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
Ansible’a sammy kullanıcısı ile “servers” grubundaki sunuculara bağlanması gerektiğini özellikle söyleyelim. Ansible yapılandırma yapısında group_vars adında bir dizin oluşturun.
sudo mkdir /etc/ansible/group_vars
Bu klasörün içinde yapılandırmak istediğimiz her grup için YAML formatında dosyalar oluşturabiliriz:
sudo nano /etc/ansible/group_vars/servers
Aşağıdaki kodu dosyaya ekleyin
---
ansible_ssh_user: sammy
YAML dosyaları “—” işaretiyle başlar, bu yüzden bu kısmı unutmadığınızdan emin olun.
İşiniz bittiğinde dosyayı kaydettiğinizden ve kapattığınızdan emin olun. Ansible artık sunucu grubu için geçerli kullanıcıdan bağımsız olarak her zaman sammy kullanıcısını kullanacak.
Gruplandırma topluluğundan bağımsız olarak her sunucu için yapılandırma ayrıntılarını belirtmek isterseniz /etc/ansible/group_vars/all
bu ayrıntıları yoldaki bir dosyaya koyabilirsiniz. adlı bir dizinde dosyalar oluşturarak tek tek ana bilgisayarları /etc/ansible/host_vars
yapılandırabilirsiniz .
Basit Ansible Komutlarını Kullanma Artık ana bilgisayarlarımızı kurduğumuza ve ana bilgisayarlara başarıyla bağlanmak için yeterli yapılandırma ayrıntılarına sahip olduğumuza göre, ilk komutumuzu deneyebiliriz.
Yapılandırdığınız tüm sunuculara ping atmak için şunu yazın:
ansible -m ping all
Ansible aşağıdaki çıktıyı döndürür:
Çıktı:
host1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
host3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
host2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
Bu, Ansible’ın tüm ana bilgisayarlarıyla iletişim kurduğundan emin olmak için yapılan bir ön testtir.
Komutun -m ping kısmı, Ansible’a ping modülünü kullanan bir komuttur. Bu modüller aslında uzak ana bilgisayarlarınızda çalıştırabileceğiniz komutlardır. Ping modülü birçok açıdan Linux’taki normal ping programına benzer şekilde çalışır ancak bunun yerine Ansible bağlantısını kontrol etmek için kullanılır.
Hepsi kısmı “tüm ana bilgisayarlar” anlamına gelir. Kolayca bir grup belirleyebilirsiniz:
ansible -m ping servers
Ayrıca belirli bir ana bilgisayarı da belirtebilirsiniz:
ansible -m ping host1
Ayrıca, birden fazla ana bilgisayarı iki nokta üst üste işaretiyle ayırarak da belirtebilirsiniz:
ansible -m ping host1:host2
Kabuk modülü uzak bir ana bilgisayara komut göndermemize ve sonuçları almamıza olanak tanır. Örneğin, host1 makinesindeki bellek kullanımını öğrenmek için aşağıdaki komutu kullanabiliriz:
ansible -m shell -a 'free -m' host1
Gördüğünüz gibi -a anahtarını kullanarak argümanları bir betiğe iletebilirsiniz. Burada çıktı şöyle görünebilir:
Çıktı:
host1 | SUCCESS | rc=0 >>
total used free shared buffers cached
Mem: 3954 227 3726 0 14 93
-/+ buffers/cache: 119 3834
Swap: 0 0 0
son söz
Bu yazıda, sunucuları kontrol etmek için Ansible’ın Ubuntu, Debian ve CentOS işletim sistemlerine nasıl kurulacağını araştırdık. Ansible, sunucuları yapılandırmak ve yönetmek için güçlü bir araçtır ve onu kullanarak sunucularınızı kontrol etme ve yapılandırma sürecini iyileştirebilirsiniz.
Ansible’ı istediğiniz işletim sisteminize kurarak sunucularınızı kolaylıkla kontrol edebilir, yapılandırma ve yönetme sürecinde birçok kolaylığa sahip olabilirsiniz. Güçlü otomasyon yöntemlerini kullanan Ansible, tekrarlanan işlemleri verimli ve uyumlu bir şekilde gerçekleştirerek sunucularınızı yönetirken daha fazla zaman ve emekten tasarruf etmenize yardımcı olur.
Yani Ansible’ı Ubuntu, Debian ve CentOS sistemlerine yükleyip kullanarak sunucularınızın performansını ve kontrolünü artırabilir, konfigürasyon ve yönetim sürecini iyileştirebilirsiniz.