Ansible #3 ตอน Quick Start กับ Ansible

Damrongsak Reetanon
2 min readJan 2, 2018

--

ตอนแรกคิดว่าจะเขียนให้เป็นขั้นเป็นตอน เรียนรู้ทฤษฎีให้เต็มที่แล้วค่อยลงมือใช้งานกัน แต่พอเตรียมหัวข้อตามที่วางแผนไว้ คิดว่ากว่าจะได้ลงมือใช้งาน Ansible กันได้จริงคงจะอีกหลายเดือน ก็เลยเปลี่ยนแผน มาแนะนำวิธีการใช้งานในเบื้องต้นกันให้เห็นภาพกันก่อน ถ้าจะใช้งาน Ansible แบบง่าย ๆ จะเริ่มต้นกันอย่างไร

คำสั่งและศัพท์ที่เบื้องต้นในการใช้งานที่จะแนะนำมีโครงสร้างดังนี้

$ ansible pattern -i <inventory file> [option]ตัวอย่าง$ ansible web -i myhost -m ping

จากตัวอย่างอธิบายแต่ละค่าในดังอย่างได้ดังนี้

  • ansible เป็นหนึ่งในชุดคำสั่งใน Ansible ที่ทำงานในลักษณะ ad-hoc คือทำงานเพียงอย่างเดียวตามที่กำหนดให้เท่านั้น ซึ่งการใช้งานโดยทั่วไปเราสามารถกำหนดให้ Ansible ทำงานเพียงงานเดียว, ทำงานหลาย ๆ งานติดต่อกัน หรือ กำหนดเงื่อนไขในการทำงานในแต่ละงานที่สั่งก็ได้
  • web เป็นส่วนของคำสั่งที่เรียกว่า pattern หรือในบางเอกสารเรียกว่า host-pattern ในการเรียกคำสั่ง ansible ครั้งเดียว สามารถกำหนดให้ ansible เข้าไปทำงานที่ host ได้มากกว่ากว่าหนึ่ง host ด้วยการสั่งเพียงครั้งเดียว โดยการเลือก host เหล่านั้นด้วย pattern เช่น web เพื่อบอกว่าเลือกจะจัดการกับกลุ่มของ host ที่ชื่อว่า web ซึ่งถูกนิยามไว้ใน inventory ซึ่งจะอธิบายในหัวข้อถัดไป หรือ กำหนด pattern เป็น ​192.168.1.1–20 เพื่อเลือกที่จะจัดการกับ host ที่มี ip 192.168.1.1,192.168.1.2 ถึง. 192.168.1.20
  • -i <inventory> เป็นส่วนของคำสั่งที่จะระบุถึงที่เก็บข้อมูลของ host และคุณลักษณะของ host รวมถึงตัวแปรต่าง ๆ ที่นิยามไว้สำปรับใช้งาน ซึ่งสามารถกรองกลุ่มของ host ได้ด้วยกำหนด pattern ได้
  • option เป็นส่วนของคำสั่งที่จะกำหนดงานให้ ansible ทำงาน หรือ กำหนดความสามารถเพิ่มเติมโดยการเรียกใช้งาน module (จะอธิบายในหัวข้อถัดไป) ตัวอย่าง option

-m <module> -a <module argument> เป็น option สำหรับเรียกใช้งาน module

-u <user> เป็น option สำหรับกำหนด user ที่จะเชื่อมต่อและทำงานใน host ปลายทาง

-k เป็น option สำหรับบอกให้คำสั่ง ansible รอรับรหัสผ่านในการเชื่อมต่อไปยัง host ปลายทาง

สุดท้าย คำสั่งแรกหลังจากติดตั้ง ansible เสร็จเรียบร้อย โดยยังไม่ต้องกำหนดค่าอะไรเพิ่มเติม สำหรับ OS ในตระกูล RHEL/CentOS/Fedora และยังเป็นการทดสอบในเบื้องต้นว่า ansible พร้อมสำหรับเรียกใช้งาน

$ ansible localhost -m ping -k
SSH password: <enter your current user’s password>
[WARNING]: Could not match supplied host pattern, ignoring: all
[WARNING]: provided hosts list is empty, only localhost is available
localhost | SUCCESS => {
"changed": false,
"failed": false,
"ping": "pong"
}
$ ansible localhost -m command -a 'ls -la' -k
SSH password: <enter your current user’s password>
[WARNING]: Could not match supplied host pattern, ignoring: all
[WARNING]: provided hosts list is empty, only localhost is available
localhost | SUCCESS | rc=0 >>
total 16
drwx------. 3 centos centos 99 Jan 2 23:52 .
drwxr-xr-x. 3 root root 20 Oct 25 22:53 ..
drwx------. 3 centos centos 17 Jan 2 23:52 .ansible
-rw-------. 1 centos centos 13 Jan 2 23:50 .bash_history
-rw-r--r--. 1 centos centos 18 Aug 3 04:11 .bash_logout
-rw-r--r--. 1 centos centos 193 Aug 3 04:11 .bash_profile
-rw-r--r--. 1 centos centos 231 Aug 3 04:11 .bashrc

หมายเหตุ ใน Linux บางตระกูลเช่น Ubuntu จะยังไม่สามารถใช้งานได้ เนื่องจาก Python ไม่ได้ถูกติดตั้งโดย Default

--

--

Damrongsak Reetanon
Damrongsak Reetanon

Written by Damrongsak Reetanon

OpenSource |Cloud Computing|Automation|DevOps

No responses yet