เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง
ผสมตัวแปรข้อความธรรมดากับตัวแปรลับ
เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง”
ผสมตัวแปรข้อความธรรมดากับตัวแปรลับ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เข้ารหัสไฟล์ด้วย ansible-vault create
- แก้ไข ดู และเปลี่ยนคีย์ไฟล์ Vault
- เข้ารหัสตัวแปรเดียวในบรรทัดโดยตรง
- ถอดรหัสขณะทำงานด้วย --ask-vault-pass