ใช้ SaltStack With Pillars บน Ubuntu 17.04

ในขณะที่ SaltStack เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการรันการทำงานบนเซิร์ฟเวอร์หลายเครื่องพร้อมกัน แต่ก็รองรับการกำหนดค่าล่วงหน้าที่กำหนดโดยโฮสต์ที่เก็บไว้ในไฟล์ที่ไม่ซ้ำซึ่งเรียกอีกอย่างว่า "เสา" ในคู่มือนี้เราจะเขียนสูตร SaltStack ขนาดเล็กสำหรับการติดตั้ง Nginx และทำการปรับใช้โฮสต์เสมือนโดยอัตโนมัติโดยใช้เสาหลัก

ความต้องการ

  • อินสแตนซ์ Vultr ที่ใช้ Ubuntu 17.04 (ต้นแบบ)
  • อินสแตนซ์ Vultr สองตัวที่ใช้งาน Ubuntu 17.04 (สมุน)

การตั้งค่าหลัก

หากคุณเพิ่งเริ่มต้นใช้งานและยังไม่ได้ตั้งค่า SaltStack ให้ลองอ่านบทความนี้ซึ่งอธิบายวิธีเริ่มต้นใช้งาน SaltStack

สูตร

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

mkdir -p /srv/salt/nginx

หลังจากสร้างโฟลเดอร์เราสามารถเขียนinit.slsไฟล์ซึ่งเป็นส่วนสำคัญของทุกสูตรต่อไป:

nginx:
  pkg:
    - installed

/etc/nginx/sites-enabled/virtualhosts.conf:
    file.managed:
        - source: salt://nginx/files/virtualhosts.jinja
        - template: jinja
        - user: root
        - group: root
        - mode: 655

  cmd:
    - run
    - names:
        - service nginx restart

อย่างที่คุณได้สังเกตุเห็น SaltStack ใช้เครื่องมือสร้างแรงบันดาลใจของ Jinja เพื่อสร้างไฟล์กำหนดค่าแบบไดนามิก สิ่งนี้ให้ความเป็นไปได้ที่หลากหลายภายในไฟล์เทมเพลตการกำหนดค่าของเราเช่นการเข้าถึงรหัสภาษาไพ ธ อนหรือการตั้งค่าตัวแปรและสิ่งที่คล้ายกัน ขั้นตอนต่อไปประกอบด้วยการสร้างเทมเพลตสำหรับvirtualhosts.confไฟล์ของเราในขณะที่เราต้องสร้างโฟลเดอร์ก่อน:

mkdir -p /srv/salt/nginx/files

เมื่อสร้างโฟลเดอร์แล้วเราสามารถเขียนvirtualhosts.jinjaไฟล์ต่อไปได้:

{% for vhost in pillar['vhosts'] %}
server {
    listen {{ vhost['listenPort'] }};
    server_name {{ vhost['serverName'] }};
    root {{ vhost['documentRoot'] }};
    index {%- for index in vhost['indexFiles'] -%}{{ index }}{%- endfor -%};
    location / {
        try_files $uri $uri/ =404;
    }
}
{% endfor %}

เสา

หลังจากสร้างสูตรเราสามารถไปข้างหน้าและตั้งค่าฐานเสาของเรา:

mkdir -p /srv/pillar/

การอ้างอิงสำหรับโฮสต์ที่ตรงกับไฟล์หลักนั้นจะถูกเขียนลงในtop.slsไฟล์ภายในไดเรกทอรีที่เราเพิ่งสร้าง ในตัวอย่างของเราเราสมมติว่ามีสองมินเนียนอยู่กับชื่อโฮสต์nginxwww1และnginxwww2ในขณะที่เราจะกำหนดให้กับไฟล์หลักทั้งสอง:

base:
  'id:nginxwww1':
    - match: grain
    - nginxwww1
  'id:nginxwww2':
    - match: grain
    - nginxwww2

ต่อไปเราจะทำการสร้างไฟล์ pillar ต่อไปnginxwww1ในขณะที่เราจะสร้าง vhost ที่ฟังบนพอร์ต 81 สำหรับโดเมนexample.comรากของเอกสาร/var/www/example_com/และไฟล์ดัชนีที่อยู่index.shtml:

vhosts:
    -
      listenPort: '81'
      serverName: 'example.com'
      documentRoot: '/var/www/example_com'
      indexFiles:
        - index.shtml

เราจะทำการสร้างไฟล์ pillar ต่อไปnginxwww2ในขณะที่เราจะสร้าง vhost ที่ฟังบนพอร์ต 82 สำหรับโดเมนexample2.com, รากเอกสาร/var/www/example2_com/และไฟล์ดัชนีที่อยู่index.jsและindex.css:

vhosts:
    -
      listenPort: '82'
      serverName: 'example2.com'
      documentRoot: '/var/www/example2_com'
      indexFiles:
        - index.js
        - index.css

หมายเหตุ:ไฟล์เสาจะถูกเก็บไว้ภายใน/srv/pillar/

การปรับใช้

ตอนนี้เราสามารถลองเสาแรกให้เสร็จโดยอัพเดทลูกน้องของเรา:

salt '*' saltutil.refresh_pillar

หลังจากนั้นเราสามารถเรียกใช้สูตร SaltStack ได้:

salt '*' state.sls nginx

การยืนยัน

เมื่อสูตร SaltStack ได้รับการวิ่งเสร็จสมบูรณ์และไม่มีข้อผิดพลาดใด ๆ เราควรจะสามารถที่จะเห็นnginxการฟังบนพอร์ต81บนnginxwww1และบนพอร์ต82บนnginxwww2เป็นการยืนยัน

ข้อสรุป

สูตร SaltStack ที่มีน้ำหนักเบา แต่ทรงพลังนี้สามารถขยายออกไปอีกเพื่อเพิ่มการรองรับ HTTPS ซึ่งอาจรวมกับ Let's Encrypt, รองรับ CGI หรือ PHP แบ็กเอนด์และทุกสิ่งที่คุณทำได้ด้วยตนเอง คู่มือนี้ควรให้แนวคิดพื้นฐานเกี่ยวกับสูตรและเสา SaltStack ที่ใช้สำหรับการปรับใช้ไฟล์การกำหนดค่า มีความสุขโดยอัตโนมัติ!



Leave a Comment

เริ่มต้นด้วย SaltStack บน Ubuntu 17.04

เริ่มต้นด้วย SaltStack บน Ubuntu 17.04

SaltStack เป็นโปรแกรมจัดการการกำหนดค่าที่ใช้ python ซึ่งได้รับการปรับให้เหมาะสมสำหรับการทำงานอัตโนมัติของไฟล์การกำหนดค่าการปรับใช้และสิ่งอื่น ๆ

วิธีการติดตั้ง Foreman บน Ubuntu 16.04 LTS

วิธีการติดตั้ง Foreman บน Ubuntu 16.04 LTS

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

วิธีการติดตั้ง Jenkins บน CentOS 7

วิธีการติดตั้ง Jenkins บน CentOS 7

Jenkins เป็นเครื่องมือโอเพ่นซอร์ส CI (การรวมต่อเนื่อง) ยอดนิยมซึ่งใช้กันอย่างแพร่หลายสำหรับการพัฒนาโครงการการปรับใช้และระบบอัตโนมัติ บทความนี้จะ

วิธีการติดตั้ง SaltStack บน CentOS 7

วิธีการติดตั้ง SaltStack บน CentOS 7

SaltStack หรือ Salt เป็นโซลูชันการจัดการการกำหนดค่าโอเพ่นซอร์สที่เป็นที่นิยมซึ่งสามารถใช้ในการดำเนินการทางไกลการจัดการการกำหนดค่า cod

วิธีการติดตั้งและกำหนดค่า Concourse CI บน CentOS 7

วิธีการติดตั้งและกำหนดค่า Concourse CI บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร บทนำการผนวกรวมอย่างต่อเนื่องเป็นแนวปฏิบัติในการพัฒนาซอฟต์แวร์ DevOps ซึ่งจะช่วยให้นักพัฒนาสามารถผสาน th บ่อยครั้ง

วิธีการติดตั้งและกำหนดค่า Concourse CI บน Ubuntu 16.04

วิธีการติดตั้งและกำหนดค่า Concourse CI บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร บทนำการผนวกรวมอย่างต่อเนื่องเป็นแนวปฏิบัติในการพัฒนาซอฟต์แวร์ DevOps ซึ่งจะช่วยให้นักพัฒนาสามารถผสาน th บ่อยครั้ง

ใช้ Chef-solo เพื่อกำหนดค่าแอป Django บน Ubuntu

ใช้ Chef-solo เพื่อกำหนดค่าแอป Django บน Ubuntu

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

Vultr โหลดบาลานเซอร์

Vultr โหลดบาลานเซอร์

Load Balancer คืออะไร Load Balancer นั่งอยู่หน้าแอปพลิเคชันของคุณและกระจายทราฟฟิกที่เข้ามาในหลาย ๆ แอปพลิเคชันของคุณ Fo

วิธีการติดตั้ง Drone CI บน Ubuntu 18.04

วิธีการติดตั้ง Drone CI บน Ubuntu 18.04

บทนำโดรนเป็นแพลตฟอร์มการทดสอบอัตโนมัติและการส่งมอบต่อเนื่องซึ่งทำงานบนโครงสร้างพื้นฐานของคุณเอง Drone รองรับทุกภาษา, บริการ o

วิธีการติดตั้งและกำหนดค่า Ansible บน Debian 9 สำหรับใช้กับ Windows Server

วิธีการติดตั้งและกำหนดค่า Ansible บน Debian 9 สำหรับใช้กับ Windows Server

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

วิธีการติดตั้ง Foreman บน CentOS 7

วิธีการติดตั้ง Foreman บน CentOS 7

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

วิธีการติดตั้งและกำหนดค่า GoCD บน CentOS 7

วิธีการติดตั้งและกำหนดค่า GoCD บน CentOS 7

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

วิธีการติดตั้งและกำหนดค่า Ansible บน CentOS 7 สำหรับใช้กับ Windows Server

วิธีการติดตั้งและกำหนดค่า Ansible บน CentOS 7 สำหรับใช้กับ Windows Server

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

วิธีการติดตั้ง Strider CD บน Ubuntu 18.04

วิธีการติดตั้ง Strider CD บน Ubuntu 18.04

Introduction Strider CD เป็นแพลตฟอร์มโอเพ่นซอร์สอย่างต่อเนื่อง แอปพลิเคชันเขียนขึ้นใน Node.js และใช้ MongoDB เป็นแบ็กเอนด์หน่วยเก็บข้อมูล สาวเท้า

การสร้างภาพรวมด้วย Packer

การสร้างภาพรวมด้วย Packer

Packer คืออะไร Packer เป็นเครื่องมือสร้างภาพเซิร์ฟเวอร์ที่พัฒนาโดย HashiCorp ภาพเซิร์ฟเวอร์ หรืออีกทางหนึ่งคือโครงสร้างพื้นฐานที่ไม่เปลี่ยนรูปแบบ เป็นทางเลือกที่นิยม

ใช้ Chocolatey Package Manager บน Windows

ใช้ Chocolatey Package Manager บน Windows

บทนำ Chocolatey นำการจัดการแพคเกจที่ทำให้การจัดการซอฟต์แวร์และการอ้างอิงบน Linux เป็นเรื่องง่ายไปยัง Windows คุณสามารถทำได้อย่างรวดเร็วและง่ายดาย

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

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

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน