Merhabalar,
Linux sunucular üzerinde, otomasyon konusuyla ilgili yayın yapmadığımı farkettim. Dolayısıyla, bu konuda bir başlangıç yapmak üzere bu makaleyi sizlerle paylaşmayı uygun gördüm. Ben bu makalede, Ubuntu 20.10 versiyon sunucu üzerinde bu işlemleri aktaracağım.
Bir hayli teknik işimiz var o yüzden hemen sadede gelsek iyi olacak. 🙂
Ansible Nedir?
Ansible, bulut provizyonunu, konfigürasyon yönetimini, uygulama dağıtımını, hizmet içi orkestrasyonu ve diğer birçok BT gereksinimini otomatikleştiren, son derece basit bir BT otomasyon motorudur.
İlk günden beri çok katmanlı dağıtımlar için tasarlanan Ansible, her seferinde tek bir sistemi yönetmek yerine tüm sistemlerinizin birbiriyle nasıl ilişkili olduğunu açıklayarak BT altyapınızı modellemeye odaklanır. Agent ve ek özel güvenlik altyapısı kullanmaz, bu nedenle dağıtımı da oldukça kolaydır – ve en önemlisi, otomasyon işlerinizi tanımlamanıza olanak sağlayan çok basit bir dil (Ansible Playbooks biçiminde YAML) kullanır.
Ansible AWX, Ansible playbook’larını ve envanterlerini yönetmek için bir kullanıcı arayüzü ve Ansible için bir REST API sağlayan ücretsiz ve açık kaynaklı bir front-end web uygulamasıdır. Red Hat Ansible Tower’ın açık kaynaklı bir sürümüdür.
1.Adım : Sistemin update edilmesi
Öncelikle, aşağıdaki komutla sistem güncellemesi yapalım.
sudo apt update
2.Adım: docker-ce (community edition) yüklemesi
Ansible AWX, hizmetleri konteynerlerin içinde konuşlandırılacak ve birden fazla konteyner imajını çalıştırmak için docker ve docker-compose kurmamız gerekiyor.
Docker’ın iki ana sürümü vardır:
– Enterprise Edition (EE) ve
– Docker Community Edition (CE)
Community Edition ücretsiz olarak mevcuttur ve kurulumumuz için kullanacağımız versiyon da bu olacaktır.
Docker deposu GPG anahtarını sistem içerisine aktaralım.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key –keyring /etc/apt/trusted.gpg.d/docker-apt-key.gpg add
Ardından, aşağıda gösterildiği gibi Docker Community Edition (CE) deposunu ekliyoruz.
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu\
$(lsb_release -cs) stable”
Sonrasında, paket listelerini güncelleyerek Docker’ı kuruyoruz:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
Yüklendikten sonra, yerel veya normal kullanıcınızı docker grubuna ekleyin, böylece normal kullanıcı docker komutlarını sudo komutunu çağırmaya gerek kalmadan çalıştırabilir.
sudo usermod -aG docker $USER
Ardından docker hizmetini yeniden başlatın.
sudo systemctl restart docker
Not: Normal kullanıcının docker komutlarını sudo olmadan çalıştırabilmesi için oturumu kapatmayı ve tekrar oturum açmayı unutmayın.
Son olarak, docker versiyonunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz.
docker version
3.Adım: docker-compose yüklemesi
Sırada docker-compose kurulumu var. En son versiyon docker-compose dosyasını, aşağıdaki komutla sisteminize indirin.
curl -s https://api.github.com/repos/docker/compose/releases/latest \
| grep browser_download_url | grep docker-compose-Linux-x86_64 \
| cut -d ‘”‘ -f 4 | wget -qi –
İndirdiğiniz docker-compose dosyasına, executable izinleri atayın.
sudo chmod +x docker-compose-Linux-x86_64
Ardından, docker-compose dosyasını gösterildiği gibi /usr/local/bin dizinine taşıyın.
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
Son olarak, docker-compose versiyonunu aşağıdaki komutla kontrol edebilirsiniz.
docker-compose version
4.Adım: Ansible kurulumu
Kısaca Ansible, sunucuları yapılandırmayı ve uygulamaları kolaylıkla dağıtmayı mümkün kılan açık kaynaklı bir sunucu otomasyonu ve yazılım sağlama aracıdır. Bu adımda da AWX hizmetlerini dağıtmak için kullanacağımız Ansible kurulumunu yapıyoruz.
Ansible, Ubuntu 20.04 deposunda mevcuttur, bu nedenle APT komutunu gösterildiği gibi kullanabilirsiniz.
sudo apt install -y ansible
Kurulum tamamlandıktan sonra Ansible versiyonunu kontrol edebilirsiniz.
ansible –version
5.Adım: node ve NPM (Node Package Manager) yüklenmesi
Daha sonra, aşağıdaki komutları kullanarak node ve NPM’yi kurun.
sudo apt install -y nodejs npm
sudo npm install npm -global
6.Adım: Ansible AWX kurulum ve yapılandırma
AWX yükleyicisini, Github deposundan indireceğiz. Ama önce git, pip ve şifre oluşturucu yüklemesi yapalım.
sudo apt install -y python3-pip git pwgen
Ardından, docker-compose versiyonunuzla eşleşen docker-compose modülünü yükleyin.
Buradaki versiyonum 1.29.1 göründüğü için aşağıdaki komutla yükleme yaparken o versiyon numarasını kullanıyorum.
sudo pip3 install docker-compose==1.29.1
Şimdi en son AWX zip dosyasını Github’dan indireceğiz. wget komutunu aşağıdaki gibi kullanacağız.
wget https://github.com/ansible/awx/archive/17.1.0.zip
Zip dosyasını açarak oluşturulan dizin içine geçiş yapalım.
unzip 17.1.0.zip
cd awx-17.1.0 /installer
Ardından aşağıdaki gibi pwgen aracını kullanarak 30 karakterlik bir gizli anahtar oluşturacağız.
pwgen -N 1 -s 30
Bu anahtarı kopyalayın ve bir yere kaydedin. Ardından, aynı dizinde bulunan “inventory” dosyasını açın.
nano inventory
Yönetici ve şifre parametrelerinin açıklamasını kaldırın ve güçlü bir yönetici şifresi girdiğinizden emin olun. Bu, web oturum açma sayfasında AWX’te oturum açmak için kullanacağınız paroladır.
admin_user=admin
admin_password=Guclu-Admin-password
Ayrıca, gizli anahtar değişkenini daha önce oluşturulan gizli anahtarla güncelleyin. Az önce oluşturduğunuz ve not aldığınız parolayı buraya giriyoruz.
secret_key=H1MIGmuOt5hVY97GhM7LTD8Hzkj1IB
7.Adım: AWX kurulumu için playbook kullanımı
Son olarak, gösterildiği gibi install.yml adlı Ansible playbook dosyasını çalıştıracağız.
ansible-playbook -i inventory install.yml
8.Adım: AWX kontrol paneline erişim
Kontrol paneline erişmek için tarayıcımızı açıyoruz ve IP adresi veya sunucu ismi ile giriş yapıyoruz. Admin şifresini, yukarıdaki adımda konfig dosyası içinde tanımlamıştık.
Kurulum ve yapılandırma işlemlerimiz şimdilik bu kadar. Aslında bu makalede, sadece ansible kurulumu değil, docker kurulumunun da nasıl yapıldığını, bir şekilde görmüş oldunuz.
Bu kontrol panelini biraz incelediğinizde, kullanımının ne kadar kolay olduğunu da görebilirsiniz.
Yararlı olması dileğiyle.
Yusuf İşleyen