Ansible မိတ်ဆက်

ကျွန်တော်ဒီနေ့ ရေးမယ့် ခေါင်းစဥ်ကတော့ AWX အကြောင်းပဲဖြစ်ပါတယ်ခင်ဗျာ။ AWX အကြောင်းကို မစတင်ခင်မှာ Configuration Management Tools တွေထဲက နာမည်ကြီးဖြစ်တဲ့ Ansible ကိုတော့သိကြမယ်လို့ထင်ပါတယ်။ Ansibleဆိုတာ Configuration Management Tools တွေထဲက popular အဖြစ်ဆုံး tool တစ်ခုဖြစ်ပါတယ်။ Ansible ဆိုတာ ကျွန်တော့်တို့ရဲ့ ရုံးတွေ အလုပ်တွေမှာရှိတဲ့ servers တွေအများကြီးပေါ်မှာ ထပ်တလဲလဲ လုပ်ရမယ့် configuraion tasks တွေအတွက် အချိန်ကုန်လူပင်ပန်းသက်သာစေဖို့ automate လုပ်ရာမှာသုံးမယ့် Tool တစ်ခုဖြစ်ပါတယ်။Configuration Tasks တွေပြီးမြှောက်ဖို့အတွက် Ansible Ad-Hoc Commands တွေ run ခြင်း (သို့) Playbook တွေရေးပြီး run ခြင်းဖြင့် automate လုပ်ကြရပါတယ်။

နောက်ပိုင်းမှာ Redhat ကနေပြီးတော့ Visualization အတွက် Dashboard တွေ ၊ Authorization အတွက် RBAC တွေ ၊ Job Schedulling တွေနဲ့ Centralized Logging စသည့် features တွေပါဝင်လာတဲ့ Redhat Ansible Tower ကို တီထွင်ခဲ့ကြပါတယ်။ ဒါပေမယ့် သူက free မရပါဘူး။ AWX ဆိုတာက တစ်နည်းအားဖြင့် Redhat Ansible Tower ရဲ့ open-source version ဖြစ်ပါတယ်။ ဒါကြောင့် ဒီနေ့မှာ AWX ကို ubuntu server တစ်ခုပေါ်မှာ install လုပ်ပုံကို ကျွန်တော်နဲ့အတူ စမ်းကြည့်လိုက်ရအောင်နော်။

Prerequities

4 GB of RAM
3.4 GHz CPU with 2 Cores
Hard disk space 20 GB
Internet Connection

Installation Steps

ပထမဆုံးအနေနဲ့ ubuntu server ထဲကို login ဝင်ပြီး terminal ကနေ apt update ကို run ပေးပါ။

sudo apt update -y

နောက်တစ်ဆင့် အနေနဲ့ကတော့ docker ကို install လုပ်ပေးရမှာဖြစ်ပါတယ်ခင်ဗျာ။ အောက်က commands တွေကို terminal မှာ run ပေးပါ။

sudo apt install docker.io -y
sudo systemctl status docker
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker 

တတိယအဆင့်အနေနဲ့ကတော့ docker-compose ကို install လုပ်ပေးရမှာဖြစ်ပြတယ်။

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

docker နဲ့ docker-compose သွင်းပြီးတဲ့အခါမှာတော့ ansible ကို install ပေးရပါမယ်။

sudo apt install ansible -y
ansible --version

node နဲ့ npm ကိုလည်း install ပေးဖို့လိုပါတယ်။

sudo apt install nodejs npm -y
sudo npm install npm --global

လိုအပ်တာတွေအားလုံး install ပြီးသွားတဲ့အခါ AWX ကို စပြီး install လို့ရပါပြီ။

sudo apt install -y python3-pip git pwgen

နောက်တစ်ဆင့်မှာတော့ docker-compose pip module ကို install ပေးရမှာဖြစ်ပါတယ်။ docker-compose version နဲ့ pip module version ကတူရပါမယ်။

docker-compose --version
sudo pip3 install docker-compose==1.29.2

ပြီးသွားရင်တော့ ကျွန်တော်တို့တွေ github က AWX zip file ကို wget command လေးနဲ့ download လုပ်ပေးပါ။ download ပြီးရင် zip file ကို unzip ပြန်ဖြည်ပေးပါ။

wget https://github.com/ansible/awx/archive/17.1.0.zip
unzip 17.1.0.zip
cd awx-17.1.0 /installer

နောက်တစ်ဆင့်ကတော့ pwgen ကိုသုံးပြီး secret တစ်ခုကို အောက်ကအတိုင်း generate ပေးလိုက်ပါ။ အဲ့ဒီ ရလာတဲ့ secret key ကို admin user တစ်ယောက် create တဲ့အခါသုံးရမှာဖြစ်ပါတယ်။

 pwgen -N 1 -s 30

ဒီအဆင့်မှာတော့ admin user တစ်ယောက် ဆောက်ပေးရမှာဖြစ်ပါတယ်။ username က admin ဖြစ်ပြီး password ကတော့ မိမိကြိုက်နှစ်သက်ရာကို ပေးနိုင်ပါတယ်။ secret key ကတော့ အပေါ်က pwgen နဲ့ generate လို့ရလာတဲ့ key ပဲဖြစ်ပါတယ်။

vim inventory

ပြီးရင်တော့ အောက်က key တွေကို သတ်မှတ်ပေးပါ။

admin_user=admin
admin_password=Th@861998
secret_key=lKjpI3Hdj2PWlp8De6g2pDj9e5dU5e

AWX playbook ကို မ run ခင်မှာ port 80 မှာ run နေတဲ့ service တစ်ခုခုရှိရင် stop or kill လုပ်ပေးပါ။ အောက်က command နဲ့ port 80 ကို kill နိုင်ပါတယ်။ nginx ၊ apache2 တို့လို services တွေ run နေရင်လည်း systemctl နဲ့ stop လုပ်ပေးနိုင်ပါတယ်။

sudo systemctl stop nginx
sudo kill -9 $(sudo lsof -t -i:80)

port 80 kill ပြီးသွားတဲ့နောက်မှာတော့ AWX playbook ကို run နိုင်ပါပြီ။ normal user အနေနဲ့ run လို့ error တက်နေရင် root user အနေနဲ့ run ပေးပါ။

sudo su -
cd /home/thaunghtikeoo/awx-*/installer/
ansible-playbook -i inventory install.yml

၁၀ မိနစ် ကနေ မိနစ် ၂၀ လောက်ကြာနိုင်ပါတယ်။ ဒါဆိုရင် playbook ကို စ run နေပါပြီ။ plabook

error မရှိပဲ playbook run ပြီးသွားပြီဆိုရင် AWX console ထဲကို ဝင်ပြီး automation တွေစလုပ်လို့ရပါပြီ။ admin user ရဲ့ username နဲ့ password ကတော့ inventory file ထဲကသတ်မှတ်ခဲ့တဲ့အတိုင်းပါပဲခင်ဗျာ။ AWX console ဟာ port 80 မှာ run ပါတယ်။ ဒါကြောင့် localhost ကို browser ကနေခေါ်လိုက်ပါ။ login

admin username နဲ့ password ထည့်ပြီး login ဝင်လိုက်တဲ့အခါမှာတော့ အောက်ကလို AWX Dashboard ကိုတွေ့ရမှာပဲဖြစ်ပါတယ်။ db

ဒါဆိုရင်တော့ AWX ကို ubuntu server ပေါ်မှာ setup လုပ်တာ ပြီးပါပြီ။ အဆုံးထိ ဖတ်ပေးကြလို့ ကျေးဇူးတင်ပါတယ်။ နောက်ရက်တွေမှာ AWX ကိုသုံးပြီး configuration managemnet တွေလုပ်ဆောင်ပုံကို အတူတူ လေ့လာကြရအောင်ဗျာ။ အားလုံးကို ကျေးဇူးတင်ပါတယ်။

Thanks for reading ..