บริษัท ต่างๆได้ลงทุนเวลาและเงินจำนวนมากในการพัฒนาและติดตั้งซอฟต์แวร์เพื่อปรับปรุงการดำเนินงาน การแนะนำระบบคลาวด์คอมพิวติ้งทำให้ธุรกิจของพวกเขาเข้าถึงซอฟต์แวร์บนอินเทอร์เน็ตเป็นบริการซึ่งพิสูจน์แล้วว่ามีประสิทธิภาพและปลอดภัยมากขึ้น การผสานรวมเครื่องมือ IT อัตโนมัติเช่น Ansible ซึ่งจะจัดเตรียมและจัดการโครงสร้างพื้นฐานระบบคลาวด์ของคุณได้อย่างง่ายดายเช่น AWS ก็เหมือนกับการกดแจ็คพอต และนั่นคือสิ่งที่เราจะพูดถึงในบล็อก Ansible for AWS นี้
ไดอารี่:
- ทำไม บริษัท ต่างๆจึงย้ายไปที่คลาวด์
- คุณสมบัติที่ตอบได้
- เหตุใดจึงต้องใช้ Ansible สำหรับ AWS
- การสาธิต: จัดเตรียมอินสแตนซ์ EC2 โดยอัตโนมัติโดยใช้ Ansible
หากคุณต้องการที่จะเชี่ยวชาญ DevOps ' แน่นอนจะเป็นตัวเลือกที่คุณต้องการ
ทำไม บริษัท ต่างๆจึงย้ายไปที่คลาวด์
ดังที่ได้กล่าวไว้ก่อนหน้านี้คอมพิวเตอร์สามารถช่วยให้ บริษัท ต่างๆเข้าถึงเซิร์ฟเวอร์เช่นซอฟต์แวร์ผ่านทางอินเทอร์เน็ต เพื่อให้ชัดเจน Cloud Computing ก็เหมือนกับการเสียบเข้ากับโครงข่ายไฟฟ้าส่วนกลางแทนที่จะสร้างพลังงานของคุณเอง คลาวด์กลายเป็นเรื่องปกติใหม่และทำให้ประหยัดเวลาและเงินได้มาก มาดูข้อดีบางประการเกี่ยวกับสาเหตุที่ บริษัท ต่างๆย้ายมาใช้ระบบคลาวด์
1. ความยืดหยุ่น:
การเติบโตของธุรกิจไม่หยุดนิ่ง บริการบนคลาวด์เหมาะสำหรับความต้องการทางธุรกิจที่เติบโตและผันผวน คุณลักษณะในการปรับขนาดและลดขนาดการปรับใช้ของคุณตามความต้องการทำให้มีความยืดหยุ่นมาก
2. การกู้คืนจากภัยพิบัติ:
ทุกธุรกิจควรมีการลงทุนในการกู้คืนระบบ บริษัท โชคลาภทุกแห่งต้องลงทุนเป็นจำนวนมากในการกู้คืนระบบ บริษัท สตาร์ทอัพและ บริษัท งบประมาณต่ำขาดเงินและทักษะที่จำเป็นสำหรับสิ่งนี้และไม่สามารถมีลักษณะการกู้คืนระบบที่เหมาะสม Cloud นำเสนอโซลูชันการกู้คืนระบบสำหรับลูกค้าในการพัฒนาแผนที่มีประสิทธิภาพและคุ้มค่า
3. การอัปเดตซอฟต์แวร์อัตโนมัติ:
ดังที่คุณทราบแล้วคลาวด์เป็นบริการที่อินเทอร์เน็ตให้บริการดังนั้นเซิร์ฟเวอร์ทั้งหมดจึงไม่สามารถเข้าถึงได้หรือไม่ก็ปวดหัว ซัพพลายเออร์ดูแลพวกเขาซึ่งรวมถึงการอัปเดตเมื่อจำเป็นและดำเนินการตรวจสอบความปลอดภัยเป็นประจำ ซึ่งจะช่วยประหยัดเวลาและเงินได้มาก
4. ต้นทุนที่ลดลง:
การสร้างศูนย์ข้อมูลตั้งแต่ต้นอาจมีราคาแพง การวิ่งและการบำรุงรักษาจะเพิ่มค่าใช้จ่าย คุณต้องการเทคโนโลยีที่เหมาะสมฮาร์ดแวร์ที่เหมาะสมพนักงานที่เหมาะสมพร้อมความรู้และประสบการณ์ที่ถูกต้องซึ่งดูเหมือนจะเป็นงานสำหรับฉัน นอกจากนี้ยังไม่มีแนวโน้มมากนักมีหลายล้านวิธีที่อาจผิดพลาด การย้ายข้อมูลไปยังระบบคลาวด์ช่วยให้คุณมีจุดบวกนี้
5. ความสามารถในการปรับขนาด:
วิธีดั้งเดิมในการวางแผนสำหรับการเติบโตที่ไม่คาดคิดคือการซื้อและรักษาเซิร์ฟเวอร์พื้นที่จัดเก็บข้อมูลและใบอนุญาตเพิ่มเติม อาจใช้เวลาหลายปีก่อนที่คุณจะใช้งานจริง แพลตฟอร์มระบบคลาวด์ช่วยให้คุณสามารถปรับขนาดทรัพยากรเหล่านี้ได้เมื่อจำเป็น การปรับขนาดแบบไดนามิกนี้เหมาะอย่างยิ่งสำหรับการเติบโตที่คาดเดาไม่ได้
6. ความปลอดภัยของข้อมูล:
โดยส่วนใหญ่แล้วการเก็บข้อมูลของคุณบนระบบคลาวด์จะดีกว่าการจัดเก็บไว้ในอุปกรณ์จริงเช่นแล็ปท็อปหรือฮาร์ดดิสก์ มีโอกาสสูงที่อุปกรณ์ทางกายภาพเหล่านี้จะถูกขโมยหรือแตกเป็นเสี่ยง ๆ ระบบคลาวด์ช่วยให้คุณสามารถลบข้อมูลจากระยะไกลหรือถ่ายโอนไปยังเซิร์ฟเวอร์อื่นเพื่อให้แน่ใจว่าข้อมูลยังคงสมบูรณ์และปลอดภัย
7. การทำงานร่วมกันที่เพิ่มขึ้น:
การใช้แพลตฟอร์มคลาวด์ช่วยให้ทีมสามารถเข้าถึงแก้ไขและแชร์เอกสารได้ทุกที่ทุกเวลา พวกเขาสามารถทำงานร่วมกันได้จึงเพิ่มประสิทธิภาพ นอกจากนี้ยังมีการอัปเดตแบบเรียลไทม์และโปร่งใส
คุณสมบัติที่ตอบได้
Ansible มีคุณลักษณะเฉพาะบางอย่างและเมื่อคุณลักษณะดังกล่าวทำงานร่วมกับ Amazon Web Services จะทิ้งเครื่องหมายไว้ มาดูคุณสมบัติที่น่าทึ่งเหล่านี้กัน:
- Ansible มีพื้นฐานมาจากสถาปัตยกรรมแบบไม่ใช้ตัวแทนซึ่งแตกต่างจาก Chef และ Puppet
- Ansible เข้าถึงโฮสต์ผ่าน SSH ซึ่งทำให้การสื่อสารระหว่างเซิร์ฟเวอร์และโฮสต์เป็นไปอย่างรวดเร็ว
- ไม่จำเป็นต้องมีโครงสร้างพื้นฐานด้านความปลอดภัยที่กำหนดเอง
- การกำหนดค่า playbooks และโมดูลนั้นง่ายมากเพราะเป็นไปตามรูปแบบ YAML
- มีโมดูลที่หลากหลายสำหรับลูกค้า
- ช่วยให้สามารถจัดการการกำหนดค่าการจัดเตรียมและการปรับใช้ที่สมบูรณ์
- Ansible Vault เก็บความลับไว้อย่างปลอดภัย
เหตุใดจึงต้องใช้ Ansible สำหรับ AWS
ตอนนี้เราได้ใช้ประโยชน์จากการใช้แพลตฟอร์มคลาวด์เช่น AWS และคุณลักษณะเฉพาะของ Ansible แล้วเรามาดูความมหัศจรรย์ที่สร้างขึ้นโดยการรวมตำนานทั้งสองนี้
1. คลาวด์เป็นกลุ่มบริการ
คลาวด์ไม่ได้เป็นเพียงกลุ่มเซิร์ฟเวอร์บนศูนย์ข้อมูลของคนอื่น แต่เป็นมากกว่านั้น คุณจะรู้ว่าเมื่อคุณได้ทำให้บริการของคุณใช้งานได้แล้ว มีบริการมากมายที่ช่วยให้คุณปรับใช้และปรับขนาดแอปพลิเคชันของคุณได้อย่างรวดเร็ว Ansible Automation ช่วยให้คุณจัดการสภาพแวดล้อม AWS ของคุณเช่นกลุ่มบริการแทนที่จะใช้เป็นกลุ่มเซิร์ฟเวอร์
อ่านไฟล์ xml ในตัวอย่าง java
2. โมดูล Ansible ที่รองรับ AWS
Ansible ใช้เพื่อกำหนดปรับใช้และจัดการบริการที่หลากหลาย สภาพแวดล้อม AWS ที่ซับซ้อนส่วนใหญ่สามารถจัดเตรียมได้อย่างง่ายดายโดยใช้ playbook คุณสมบัติที่ดีที่สุดคือคุณสร้างการเชื่อมต่อเซิร์ฟเวอร์ - โฮสต์จากนั้นเรียกใช้ playbook บนระบบเดียวและจัดเตรียมระบบอื่น ๆ หลายระบบพร้อมตัวเลือกในการปรับขนาดและลดขนาดตามความต้องการ
Ansible มีโมดูลหลายร้อยโมดูลที่รองรับ AWS และบางส่วนประกอบด้วย:
- กลุ่มการปรับขนาดอัตโนมัติ
- CloudFormation
- CloudTrail
- CloudWatch
- DynamoDB
- ElastiCache
- ยืดหยุ่น Cloud Compute (EC2)
- Identity Access Manager (IAM)
- แลมด้า
- บริการฐานข้อมูลเชิงสัมพันธ์ (RDS)
- เส้นทาง 53
- กลุ่มความปลอดภัย
- บริการจัดเก็บข้อมูลอย่างง่าย (S3)
- Virtual Private Cloud (VPC)
- และอื่น ๆ อีกมากมาย
3. สินค้าคงคลังแบบไดนามิก
ในสภาพแวดล้อมการพัฒนาโฮสต์ยังคงหมุนและปิดตัวลงด้วยความต้องการทางธุรกิจที่หลากหลาย ในกรณีเช่นนี้การใช้สินค้าคงคลังคงที่อาจไม่เพียงพอ สถานการณ์ดังกล่าวเรียกร้องให้ใช้สินค้าคงคลังแบบไดนามิก สิ่งนี้ช่วยให้คุณสามารถแมปโฮสต์ตามกลุ่มที่จัดเตรียมโดยสคริปต์สินค้าคงคลังซึ่งแตกต่างจากพื้นที่โฆษณาปกติที่บังคับให้คุณแมปโฮสต์ด้วยตนเองซึ่งน่าเบื่อมาก
4. ระบบอัตโนมัติที่ปลอดภัย
สมมติว่าคุณมีทีม 5 คนและแต่ละคนมีลูกน้อง 2 คนภายใต้พวกเขาที่ไม่ชำนาญอย่างสมบูรณ์ คุณคงไม่ต้องการให้พวกเขาเข้าถึงกระบวนการทำให้ใช้งานได้ทั้งหมด นั่นคือเมื่อคุณตระหนักถึงความจำเป็นในการ จำกัด การให้สิทธิ์
Ansible Tower มอบคุณสมบัตินี้เพื่อ จำกัด การอนุญาต โดยพื้นฐานแล้วคุณเลือกได้ว่าใครทำอะไรได้บ้างซึ่งจะช่วยให้กลั่นกรองได้ง่ายขึ้นนอกจากนี้ Ansible Tower ยังเข้ารหัสข้อมูลประจำตัวและข้อมูลที่ละเอียดอ่อนอื่น ๆ และคุณให้สิทธิ์ผู้ใต้บังคับบัญชาเข้าถึงทรัพยากรที่เกี่ยวข้องเท่านั้นในขณะที่ จำกัด การเข้าถึงบุคคลที่ไม่เกี่ยวข้อง
การสาธิต: จัดเตรียมอินสแตนซ์ EC2 โดยอัตโนมัติโดยใช้ Ansible
ในส่วนการสาธิตนี้ฉันจะสาธิตวิธีที่ Ansible รองรับ AWS โดยการแสดงวิธีการเริ่มต้นและการจัดเตรียมอินสแตนซ์ EC2 โดยอัตโนมัติ มาเริ่มกันเลย.
ขั้นตอนที่ 1 :
ติดตั้ง Ansible บนโหนดเซิร์ฟเวอร์ของคุณและทำการเชื่อมต่อ SSH ระหว่างเซิร์ฟเวอร์ของคุณและโหนดไคลเอนต์บน AWS ในกรณีนี้ฉันได้สร้างอินสแตนซ์ EC2 สองรายการโดยเซิร์ฟเวอร์หนึ่งที่ติดตั้ง Ansible และอีกเซิร์ฟเวอร์หนึ่งเป็นไคลเอนต์
ขั้นตอนที่ 2:
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งข้อกำหนดทั้งหมดแล้ว ตามเอกสารเหล่านี้เป็นข้อกำหนดต่อไปนี้:
- Python> = 2.6
- โหวต
ติดตั้ง python โดยใช้คำสั่งต่อไปนี้:
$ sudo apt ติดตั้ง python
ติดตั้ง boto โดยใช้คำสั่งต่อไปนี้:
$ sudo apt ติดตั้ง python-pip
$ pip ติดตั้ง boto
Boto เป็นอินเทอร์เฟซหลามสำหรับการใช้บริการเว็บของ Amazon คุณจะต้องนำเข้าโดยใช้คำสั่งต่อไปนี้:
$ python
ปุ่ม $ import
ทางออก $ ()
ขั้นตอนที่ 3:
คุณต้องกำหนดค่า AWS ของคุณ ใช้คำสั่งต่อไปนี้เหมือนกัน:
$ aws กำหนดค่า
และเพิ่มรหัสคีย์การเข้าถึง AWS คีย์ลับและภูมิภาคเริ่มต้น (ซึ่งเป็นทางเลือก)
ขั้นตอนที่ 4:
เขียน playbook เพื่อเริ่มและจัดเตรียมอินสแตนซ์ EC2
$ sudo vi /etc/ansible/launch.yml
--- - ชื่อ: สร้างโฮสต์อินสแตนซ์ ec2: web collect_facts: false vars: region: us-east-1 instance_type: t2.micro ami: ami-05ea7729e394412c8 keypair: priyajdm งาน: - ชื่อ: สร้าง ec2 อินสแตนซ์ ec2: aws_access_key : '********************' aws_secret_key: '************************ **************** 'key_name:' {{keypair}} 'group: launch-wizard-26 instance_type:' {{instance_type}} 'image:' {{ami}} 'wait: true region:' {{region}} 'จำนวน: 1 vpc_subnet_id: subnet-02f498e16fd56c277 assign_public_ip: yes register: ec2
เป็นแนวทางปฏิบัติที่ดีในการทราบว่าโค้ดทำหน้าที่อะไรก่อนที่จะเรียกใช้งานจริง ให้ฉันอธิบาย Playbook นี้เพื่อความเข้าใจที่ดีขึ้น
ชื่อ: มันสามารถเป็นอะไรก็ได้ แนวปฏิบัติที่ดีคือการตั้งชื่อที่ให้คำอธิบายพื้นฐานของงานที่ดำเนินการ
โฮสต์: พูดถึงชื่อของรายการโฮสต์ที่ต้องเรียกใช้เพลย์บุ๊ก ในกรณีของฉันมันเป็น เว็บ .
ather_facts: พารามิเตอร์นี้บอกให้ Ansible รวบรวมข้อเท็จจริงตัวแปรและข้อมูลอื่น ๆ ที่เกี่ยวข้องทั้งหมดเพื่อใช้อ้างอิงในอนาคต ในกรณีของเราเราได้ตั้งค่าเป็นเท็จเนื่องจากเราไม่ได้ใช้การรวบรวมข้อเท็จจริง (ที่อยู่ IP ชื่อโฮสต์ ฯลฯ )
ใคร: ส่วนนี้กำหนดและเริ่มต้นตัวแปรทั้งหมดที่เราจะใช้ใน Playbook นี้ เรามีตัวแปรสี่ตัวที่นี่:
ข้อผิดพลาดที่สำคัญใน python คืออะไร
- ภูมิภาค กำหนดพื้นที่ที่อินสแตนซ์ EC2 ต้องเกิดขึ้น
- instance_type กำหนดประเภทของอินสแตนซ์ที่เราพยายามนำเสนอ ในกรณีของเราเราใช้ t2.micro
- ที่ กำหนด AMI ของอินสแตนซ์ที่เราพยายามนำเสนอ
- คู่กุญแจ กำหนดคีย์คู่ที่เราจะใช้เพื่อเรียกใช้อินสแตนซ์
ec2: นี่คือโมดูลที่ Ansible จัดเตรียมไว้เพื่อเริ่มหรือยุติอินสแตนซ์ EC2
โมดูลนี้มีพารามิเตอร์บางอย่างที่เราจะใช้เพื่อระบุฟังก์ชันอื่น ๆ ของอินสแตนซ์ EC2 ที่เรากำลังพยายามเริ่มต้น
- เราเริ่มต้นด้วยการกล่าวถึงรหัสคีย์การเข้าถึง AWS และคีย์ลับโดยใช้พารามิเตอร์ aws_access_key และ aws-secret_key .
- key_name: ส่งผ่านตัวแปรที่กำหนดคีย์คู่ที่ใช้ที่นี่
- กลุ่ม: พูดถึงชื่อของกลุ่มความปลอดภัย นี่เป็นการกำหนดกฎความปลอดภัยของอินสแตนซ์ EC2 ที่เราพยายามนำมาใช้
- instance_type: ส่งผ่านตัวแปรที่กำหนดประเภทของอินสแตนซ์ที่เราใช้ที่นี่
- ภาพ: ส่งผ่านตัวแปรที่กำหนด AMI ของรูปภาพที่เรากำลังพยายามเริ่มต้น
- รอ: ค่านี้มีค่าบูลีนเป็นจริงหรือเท็จ หากเป็นจริงระบบจะรอให้อินสแตนซ์ไปถึงสถานะที่ต้องการก่อนที่จะกลับมา
- ภูมิภาค: ส่งผ่านตัวแปรที่กำหนดภูมิภาคที่ต้องสร้างอินสแตนซ์ EC2
- นับ: พารามิเตอร์นี้ระบุจำนวนอินสแตนซ์ที่ต้องสร้าง ในกรณีนี้ฉันพูดถึงเพียงเรื่องเดียว แต่ขึ้นอยู่กับความต้องการของคุณ
- vpc_subnet_id: ส่งรหัสเครือข่ายย่อยที่คุณต้องการสร้างอินสแตนซ์
- assign_public_ip: พารามิเตอร์นี้มีค่าบูลีน หากเป็นจริงเช่นในกรณีของเรา IP สาธารณะจะถูกกำหนดให้กับอินสแตนซ์เมื่อจัดเตรียมภายใน VPC
ขั้นตอนที่ 5:
เมื่อคุณเข้าใจทุกบรรทัดในเพลย์บุ๊กแล้วเรามาเริ่มต้นใช้งานได้เลย ใช้คำสั่งต่อไปนี้:
$ ansible-playbook /etc/ansible/launch.yml
เมื่อคุณดำเนินการ Playbook แล้วคุณจะเห็นอินสแตนซ์ที่กำลังสร้างขึ้น
และ TADA! คุณดำเนินการจัดเตรียมอินสแตนซ์ EC2 โดยอัตโนมัติเรียบร้อยแล้ว เช่นเดียวกับที่คุณสามารถเขียน playbook เพื่อหยุดอินสแตนซ์ EC2
เรามาถึงจุดสิ้นสุดของบล็อก Ansible For AWS หากคุณพบว่าบทความนี้มีประโยชน์โปรดดูไฟล์ ' นำเสนอโดย Edureka ครอบคลุมเครื่องมือทั้งหมดที่ทำให้อุตสาหกรรมไอทีมีประสิทธิภาพ