Software Provisioning
ทำการสร้าง Droplet
หรือ VM
ขึ้นมาได้agentless
แปลว่า ไม่จำเป็นต้องมีอะไรอยู่ในเครื่องปลายทางก็สามารถ สั่งทำอะไรได้Python
กล่าวคือ เครื่องไหนที่มี Python
สามารถ ใช้งานมันได้เช่น เราเจอปัญหาว่าเรามี server สำหรับ deploy หลายตัว และ หลาย environment ซึ่ง อาจจะเขียน เป็น ไฟล์ shell แล้วให้ jenkin ไปเรียกใช้ไฟล์นั้นก็ได้ แต่พอดีไปเจอ Tool ตัวนี้มา เลยลองใช้ดู
อันนี้ ได้ทำการ สร้าง server เพื่อใช้ งาน ansible เลย
$ apt install ansible -y
เมื่อติดตั้งเสร็จ ลอง เช็คด้วย
$ ansible --version
output
$ ansible --version
...
ansible 2.9.6
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 3.8.2 (default, Apr 27 2020, 15:53:34) [GCC 9.3.0]
$ vi /etc/ansible/hosts
จากนั้น เพิ่ม ( อันนี้จริงๆ เขาไป set ใน playbook.yml แทนก็ได้ )
<name อะไรก็ได้>
ansible_ssh_private_key_file=<key>
ansible_python_interpreter=<python เครื่องdeploy>
ansible_ssh_user=<user>
ansible_ssh_host=<host>
หลังจากเพิ่ม ลองทดสอบดู host ที่เพิ่ม
$ ansible --list-host all
output
$ ansible --list-host all
hosts (1):
service1
หรือ ลอง ping หา เครื่องที่เพิ่มได้เลยด้วย ( เครื่องปลายทางต้องมี python ด้วย )
$ ansible -m ping all
หรือ ระบุ namehost
$ ansible -m ping service1
output
$ ansible -m ping service1
...
service1 | SUCCESS => { "changed": false, "ping": "pong"}
หรือ เราสามารถใช้ shell ใน เครื่องปลายทางได้แบบนี้
$ ansible -m shell -a '<คำสั่ง shell ที่จะใช้>' <namehost ที่ตั้ง>
ex.
$ ansible -m shell -a 'free -m' server1