เรียกใช้คำสั่งเชลล์ด้วย command และ shell
เรียกใช้คำสั่งใดก็ได้บนโหนดระยะไกล
เรียกใช้คำสั่งเชลล์ด้วย command และ shell เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เรียกใช้คำสั่งจริงจากระยะไกล
บางครั้งคุณก็เพียงต้องการเรียกใช้คำสั่งดิบบนเซิร์ฟเวอร์ Ansible มีโมดูลสำหรับงานนี้สองตัว ได้แก่ command และ shell 🖥️
โมดูล command
โมดูล command จะเรียกใช้โปรแกรมโดยตรงบนโฮสต์ระยะไกล เป็นตัวเลือกเริ่มต้นที่ปลอดภัยสำหรับคำสั่งง่าย ๆ ที่มีเพียงคำสั่งเดียว
ansible all -m command -a "uptime"command ไม่ใช้เชลล์
เนื่องจาก command ทำงานโดยไม่ผ่านเชลล์ จึงไม่รองรับไพป์ การเปลี่ยนเส้นทาง และตัวแปรอย่าง $HOME ทำให้การทำงานคาดเดาได้และปลอดภัย
ansible all -m command -a "ls /etc"โมดูล shell
โมดูล shell จะเรียกใช้คำสั่งผ่านเชลล์จริงบนโฮสต์ ดังนั้นไพป์ การเปลี่ยนเส้นทาง และตัวแปรจึงใช้งานได้ทั้งหมด
ansible all -m shell -a "cat /etc/*release"ไพป์ต้องใช้ shell
เมื่อคำสั่งของคุณใช้ไพป์หรือการเปลี่ยนเส้นทาง ให้เลือก shell เพราะโมดูล command จะมอง | เป็นเพียงอาร์กิวเมนต์ธรรมดา
ansible web -m shell -a "ps aux | grep nginx"ตัวแปรสภาพแวดล้อมใน shell
มีเพียงโมดูล shell ที่ขยายค่าตัวแปรได้ ให้ใช้โมดูลนี้เมื่อคำสั่งต้องอาศัยสิ่งอย่าง $HOME หรือ $PATH
ansible all -m shell -a "echo $HOME"เลือก command เมื่อทำได้
โดยทั่วไปให้เลือก command และใช้ shell เฉพาะเมื่อจำเป็นต้องใช้ความสามารถของเชลล์จริง ๆ การใช้เชลล์น้อยลงจะช่วยลดสิ่งที่คาดไม่ถึง
เรียกใช้ในไดเรกทอรีด้วย chdir
ทั้งสองโมดูลรองรับ chdir เพื่อเปลี่ยนไปยังไดเรกทอรีก่อนเรียกใช้คำสั่ง ซึ่งสะอาดกว่าการใส่ cd ไว้ในคำสั่ง
ansible app -m command -a "chdir=/srv git pull"ป้องกันการเรียกซ้ำด้วย creates
ตัวเลือก creates จะข้ามคำสั่งหากไฟล์ที่ระบุมีอยู่แล้ว เป็นวิธีง่าย ๆ ในการหลีกเลี่ยงการทำงานซ้ำ
ansible app -m command -a "touch /tmp/done creates=/tmp/done"โมดูลเหล่านี้ไม่ทำงานแบบคงสภาพ
ทั้งสองโมดูลรายงานสถานะ changed ทุกครั้งที่เรียกใช้ เนื่องจาก Ansible ไม่อาจรู้ได้ว่าคำสั่งดิบของคุณทำอะไรไปบ้าง หากมีโมดูลเฉพาะทาง ให้เลือกใช้โมดูลนั้น
ทางเลือกสุดท้าย ไม่ใช่ตัวเลือกแรก
ให้มอง shell และ command เป็นทางเลือกสำหรับกรณีจำเป็นเท่านั้น หากมีโมดูลเฉพาะทาง เช่น service หรือ package ที่เหมาะสม ควรใช้โมดูลนั้นเพื่อผลลัพธ์ที่ปลอดภัยกว่า
ตรวจสอบอย่างรวดเร็ว
คุณต้องเรียกใช้คำสั่งที่มีไพป์ ควรเลือกโมดูลใด
สรุป
ใช้ command สำหรับคำสั่งทั่วไป และใช้ shell เมื่อต้องการไพป์หรือตัวแปร โปรดจำไว้ว่าทั้งสองโมดูลจะรายงานสถานะ changed เสมอ 🖥️
คำถามที่พบบ่อย
บทเรียน “เรียกใช้คำสั่งเชลล์ด้วย command และ shell” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เรียกใช้คำสั่งเชลล์ด้วย command และ shell” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เรียกใช้คำสั่งเชลล์ด้วย command และ shell”
เรียกใช้คำสั่งใดก็ได้บนโหนดระยะไกล คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “เรียกใช้คำสั่งเชลล์ด้วย command และ shell” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- กายวิภาคของคำสั่ง ansible
- รูปแบบเป้าหมาย: all, web และ host1
- เรียกใช้คำสั่งเชลล์ด้วย command และ shell
- การยกระดับสิทธิ์ด้วย become