0Pricing
Ansible Academy · บทเรียน

เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง

ผสมตัวแปรข้อความธรรมดากับตัวแปรลับ

เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

ข้อมูลทุกอย่างไม่ใช่ความลับ

บางครั้งมีเพียงค่าเดียวในไฟล์ที่ละเอียดอ่อน ส่วนที่เหลือไม่มีอันตราย การเข้ารหัสทั้งไฟล์จึงดูเกินความจำเป็น 🤔

เข้ารหัสเพียงตัวแปรเดียว

Vault สามารถเข้ารหัส ค่าเดียว และปล่อยให้ส่วนที่เหลือของ YAML อ่านได้ วิธีนี้ทำให้ส่วนต่างสะอาดและเปิดดูการตั้งค่าได้ง่าย

คำสั่ง encrypt_string

ใช้ ansible-vault encrypt_string เพื่อเปลี่ยนค่าข้อความธรรมดาค่าเดียวให้เป็นข้อมูลเข้ารหัสที่คุณนำไปวางในไฟล์ vars ใดก็ได้

ansible-vault encrypt_string 's3cr3t' --name 'db_password'

สิ่งที่คำสั่งแสดงผล

คำสั่งจะแสดงคีย์ YAML ซึ่งค่าของคีย์ใช้แท็ก !vault ตามด้วยบล็อกข้อความเข้ารหัสที่เยื้องบรรทัด

db_password: !vault |
  $ANSIBLE_VAULT;1.1;AES256
  39653764...

วางลงใน vars ของคุณ

คัดลอกบล็อกนั้นไปวางตรง ๆ ใน group_vars หรือ vars ของเพลย์ โดยวางอยู่ข้างตัวแปรข้อความธรรมดาได้

vars:
  app_user: deploy
  db_password: !vault |
    $ANSIBLE_VAULT;1.1;AES256
    39653764...

แท็ก !vault

แท็ก !vault เป็นสัญญาณบอก Ansible ว่าค่าเดียวนี้ถูกเข้ารหัสและต้องถอดรหัสก่อนใช้งาน

ใช้งานเหมือนตัวแปรทั่วไป

ขณะทำงาน ค่าดังกล่าวจะถูกถอดรหัสอย่างโปร่งใส คุณอ้างอิงค่าด้วยไวยากรณ์ {{ }} ตามปกติ เช่นเดียวกับตัวแปรธรรมดา

- name: Set DB password
  debug:
    msg: "{{ db_password }}"

หลีกเลี่ยงข้อความธรรมดาบนบรรทัดคำสั่ง

การใส่ข้อมูลลับไว้ในประวัติเชลล์มีความเสี่ยง ให้เพิ่ม --stdin-name เพื่อป้อนค่าแบบโต้ตอบแทน

ansible-vault encrypt_string --stdin-name 'db_password'

เข้ารหัสบางส่วนเทียบกับทั้งไฟล์

การเข้ารหัสบางส่วนเหมาะสำหรับข้อมูลลับไม่กี่ค่าในบรรดาการตั้งค่าสาธารณะ หากไฟล์มี ข้อมูลลับทั้งหมด การเข้ารหัสทั้งไฟล์จะง่ายกว่า

ใช้รหัสผ่านเดียวกัน

ค่าแบบเข้ารหัสบางส่วนใช้ รหัสผ่าน Vault เดียวกัน กับการเข้ารหัสทั้งไฟล์ ดังนั้น Ansible จึงถอดรหัสทั้งสองแบบด้วยข้อความรหัสผ่านเดียวต่อการทำงานหนึ่งครั้ง

ยังตรวจสอบส่วนต่างได้

ข้อดีสำคัญคือมีเพียงบรรทัดข้อมูลลับที่เป็นข้อความเข้ารหัส ดังนั้นการตรวจสอบโค้ดและ git diff ยังคงแสดงการเปลี่ยนแปลงที่ไม่ใช่ข้อมูลลับได้อย่างชัดเจน

ตรวจสอบอย่างรวดเร็ว

คุณต้องการเข้ารหัสค่าเดียว ขณะที่ส่วนที่เหลือของไฟล์ vars ยังคงอ่านได้

สรุปทบทวน

ด้วย encrypt_string คุณจะเข้ารหัสค่าหนึ่งค่าเป็นบล็อก !vault แล้วผสมข้อมูลลับกับข้อความธรรมดาไว้ในไฟล์เดียวที่ยังอ่านได้ ✨

คำถามที่พบบ่อย

บทเรียน “เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง”

ผสมตัวแปรข้อความธรรมดากับตัวแปรลับ คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม

ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เข้ารหัสไฟล์ด้วย ansible-vault create
  2. แก้ไข ดู และเปลี่ยนคีย์ไฟล์ Vault
  3. เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง
  4. ถอดรหัสขณะทำงานด้วย --ask-vault-pass
← กลับไปที่ Ansible Academy