Score:1

วิธีรับลิงก์จาวา vars พิเศษและดาวน์โหลดใน ansible และแตกไฟล์

ธง in

ฉันต้องการดาวน์โหลดจาวาจาก http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

จากนั้นแยกมันออก

น้ำมันดิน -xzvf jdk-8u131-linux-x64.tar.gz

แต่ไม่สามารถทำได้

ฉันมีรหัส playbook ansible ด้านล่าง

- ชื่อ: ดาวน์โหลด Java เป็นเวอร์ชันล่าสุด
      เปลือก: |
              mkdir /opt/java
              ซีดี /opt/java
              wget -c --header "คุกกี้: oraclelicense=accept-securebackup-cookie" {{javaurl}}
              tar -xzvf ${javaurl##*/} 
   
    - แก้ปัญหา:
        msg: "Java sdk คือ {{javaurl##*/}}"

ฉันส่ง url จากคำสั่ง ansible เช่นด้านล่าง

 ansible-playbook -i inventory.yml -k playbook.yml --extra-vars "java_url=http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux -x64.tar.gz"
Romeo Ninov avatar
in flag
จะฉลาดในการใช้จาวาจากลินุกซ์ของคุณ คุณมีเหตุผลเฉพาะในการดาวน์โหลดจาวาจากเว็บไซต์ Oracle หรือไม่
Rajarshi Das avatar
in flag
ใช่ เราต้องใช้ URL นั้นเพื่อดาวน์โหลดโรมิโอ
Michael Hampton avatar
cz flag
คุณกำลังมีปัญหาอะไร
Rajarshi Das avatar
in flag
## ใน javaurl ไม่ยอมรับเช่นกัน wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" {{javaurl}} ไม่สามารถเข้าใจ url ที่ฉันส่งผ่าน cli
Romeo Ninov avatar
in flag
ทำไมคุณถึงต้องการรุ่นนี้?
Michael Hampton avatar
cz flag
โปรดเจาะจงและโพสต์ข้อผิดพลาดที่เกิดขึ้นจริง
Rajarshi Das avatar
in flag
ขอบคุณสำหรับการตอบกลับของคุณ Michael ฉันได้รับโดยใช้ wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" {{javaurl}} น้ำมันดิน -xzvf ./jdk-*.tar.gz
Score:1
ธง th

แม้ว่าคุณจะไม่ได้ให้ข้อมูลว่ารหัสของคุณล้มเหลวอย่างไร แต่ก็ยังมีปัญหาบางอย่างที่ชัดเจน Ansible ไม่ใช่เชลล์ และคุณไม่สามารถเข้าถึงตัวแปร Ansible โดยใช้ไวยากรณ์ของเชลล์ คุณยังมีชื่อตัวแปรที่แตกต่างกันในรหัสของคุณ (ชวาล) และในการเรียกใช้ CLI ตัวอย่างของคุณ (java_url). ฉันเลือกใช้ java_url ด้านล่างโดยพลการ

มีหลายวิธีในการเริ่มแก้ไขงานที่มีอยู่

#ใช้จินจาอย่างต่อเนื่อง
- ชื่อ: ดาวน์โหลด Java เป็นเวอร์ชันล่าสุด
  เปลือก: |
    mkdir /opt/java
    ซีดี /opt/java
    wget -c --header "คุกกี้: oraclelicense=accept-securebackup-cookie" {{ java_url }}
    tar -xzvf {{ (java_url | urlsplit).path | ชื่อฐาน }}

# ใช้ตัวแปรเชลล์อย่างสม่ำเสมอ
- ชื่อ: ดาวน์โหลด Java เป็นเวอร์ชันล่าสุด
  เปลือก: |
    mkdir /opt/java
    ซีดี /opt/java
    wget -c --header "คุกกี้: oraclelicense=accept-securebackup-cookie" $java_url
    tar -xzvf ${java_url##*/}
  สิ่งแวดล้อม:
    java_url: "{{ java_url }}"

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

- ชื่อ: สร้าง /opt/java
  ไฟล์:
    ปลายทาง: /opt/java
    สถานะ: ไดเร็กทอรี

- ชื่อ: ดาวน์โหลด Java JDK
  get_url:
    url: "{{ java_url }}"
    ปลายทาง: /opt/java
    ส่วนหัว:
      คุกกี้: oraclelicense=accept-securebackup-cookie
  ลงทะเบียน: ผลลัพธ์

- ชื่อ: แยก Java JDK
  ยกเลิกการเก็บถาวร:
    src: "{{ ผลลัพธ์ปลายทาง }}"
    remote_src: จริง
    ปลายทาง: /opt/java

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา