ทั้ง Chef ทั้ง Puppet มันเป็นการ define state สุดท้ายที่อยากให้เซิฟเวอร์ออกมาด้วย DSL
ส่วน Ansible มันเป็นการ define steps ที่ต้องการจะรันเหมือน SSH เข้าไปพิมพ์เอง
ส่วนตัวมีความรู้เรื่อง Server Admin อยู่แล้ว เลยเลือกใช้ Ansible เพราะสะดวกกว่าครับ
ประมาณ Chef/Puppet มันคือการบอกว่า "server must have Nginx installed"
ส่วนถ้าเป็น Ansible มันคือ "if server don't already have Nginx, run apt-get install nginx"
อธิบายแบบนี้เข้าใจไหมเนี่ย