Menggunakan SaltStack With Pilar pada Ubuntu 17.04

Walaupun SaltStack adalah alat yang bagus untuk menjalankan operasi pada banyak pelayan secara serentak, ia juga menyokong pratetap konfigurasi yang ditentukan oleh setiap host yang disimpan dalam fail unik yang selanjutnya disebut "tiang". Dalam panduan ini, kami akan menulis formula SaltStack kecil untuk memasang Nginx dan mengautomasikan penyebaran hos maya menggunakan tiang.

Keperluan

  • Instance Vultr yang menjalankan Ubuntu 17.04 (master)
  • Dua contoh Vultr yang menjalankan Ubuntu 17.04 (minion)

Menetapkan tuan

Sekiranya anda baru memulakan dan belum menyiapkan master SaltStack anda, lihat artikel ini yang menerangkan cara memulakan dengan SaltStack.

Formula

Kita mulakan dengan membuat folder untuk formula kita yang seterusnya menyimpan fail yang diperlukan untuk operasi SaltStack di minion kami.

mkdir -p /srv/salt/nginx

Setelah membuat folder, kita dapat terus menulis init.slsfail yang merupakan bahagian penting dari setiap formula:

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

Seperti yang anda perhatikan, SaltStack menggunakan mesin templat Jinja untuk menghasilkan fail konfigurasi dinamik. Ini menyediakan pelbagai kemungkinan dalam fail templat konfigurasi kami, seperti mengakses kod Python asli atau menetapkan pemboleh ubah dan serupa. Langkah seterusnya terdiri daripada membuat templat untuk virtualhosts.conffail kita , sedangkan kita perlu membuat folder terlebih dahulu:

mkdir -p /srv/salt/nginx/files

Setelah folder dibuat, kita dapat meneruskan menulis virtualhosts.jinjafail:

{% 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 %}

Tiang

Setelah membuat formula, kita dapat terus maju dan menyiapkan pangkalan Pilar kita:

mkdir -p /srv/pillar/

Sebarang rujukan untuk host yang sepadan dengan fail tiang tertentu ditulis ke dalam top.slsfail di dalam direktori yang baru kita buat. Dalam contoh kami, kami menganggap bahawa dua minion ada dengan nama host nginxwww1dan nginxwww2sedangkan kami akan memberikan kedua-dua fail tiang yang unik:

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

Seterusnya, kami akan terus membuat fail tiang nginxwww1sementara kami akan membuat vhost mendengar di port 81 untuk domain example.com, akar dokumen /var/www/example_com/dan fail indeks adalah index.shtml:

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

Kami akan terus membuat fail tiang untuk nginxwww2sementara kami akan membuat vhost mendengar di port 82 untuk domain example2.com, akar dokumen /var/www/example2_com/dan fail indeks menjadi index.jsdan index.css:

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

Catatan: Fail tiang disimpan di dalam/srv/pillar/

Menyebarkan

Kami kini dapat menyelesaikan percubaan pertama kami dengan tiang dengan memperbaruinya di minion kami:

salt '*' saltutil.refresh_pillar

Selepas itu, kita boleh menjalankan formula SaltStack:

salt '*' state.sls nginx

Mengesahkan

Sekali formula SaltStack yang telah jangka dan diselesaikan tanpa sebarang kesilapan, kita akan dapat melihat nginxpendengaran di pelabuhan 81pada nginxwww1dan pada port 82pada nginxwww2sebagai pengesahan.

Kesimpulannya

Formula SaltStack yang agak ringan tetapi sudah kuat ini dapat diperluas untuk menambahkan sokongan untuk HTTPS, mungkin dengan integrasi Let's Encrypt, sokongan untuk backend CGI atau PHP dan semua yang boleh anda lakukan secara manual juga. Panduan ini seharusnya memberi anda idea asas mengenai formula dan tiang SaltStack yang digunakan untuk penyebaran fail konfigurasi. Selamat automatik!



Leave a Comment

Cara Pasang CD Strider pada Ubuntu 18.04

Cara Pasang CD Strider pada Ubuntu 18.04

Pengenalan CD Strider adalah platform penyebaran sumber terbuka berterusan. Aplikasi ini ditulis dalam Node.js dan menggunakan MongoDB sebagai backend penyimpanan. Selesaikan

Bagaimana Untuk Memasang Foreman di Ubuntu 16.04 LTS

Bagaimana Untuk Memasang Foreman di Ubuntu 16.04 LTS

Menggunakan Sistem Berbeza? Foreman adalah alat sumber bebas dan terbuka yang membantu anda dengan konfigurasi dan pengurusan pelayan fizikal dan maya. Forema

Menggunakan Chef-solo untuk Mengkonfigurasi Aplikasi Django di Ubuntu

Menggunakan Chef-solo untuk Mengkonfigurasi Aplikasi Django di Ubuntu

Terdapat banyak cara untuk mengotomatisasi proses penyediaan dan konfigurasi kotak. Untuk apa jua alasan, jika keseluruhan sistem kita pada masa ini terdiri daripada adil

Pengimbang Beban Vultr

Pengimbang Beban Vultr

Apa itu Load Balancer Load Balancers duduk di depan aplikasi anda dan mengedarkan trafik masuk ke pelbagai contoh aplikasi anda. Fo

Cara Memasang dan Mengkonfigurasi Concourse CI di CentOS 7

Cara Memasang dan Mengkonfigurasi Concourse CI di CentOS 7

Menggunakan Sistem Berbeza? Pengenalan Continuous Integration adalah amalan pengembangan perisian DevOps yang membolehkan para pembangun sering bergabung

Cara Memasang dan Mengkonfigurasi Concourse CI di Ubuntu 16.04

Cara Memasang dan Mengkonfigurasi Concourse CI di Ubuntu 16.04

Menggunakan Sistem Berbeza? Pengenalan Continuous Integration adalah amalan pengembangan perisian DevOps yang membolehkan para pembangun sering bergabung

Bermula dengan SaltStack di Ubuntu 17.04

Bermula dengan SaltStack di Ubuntu 17.04

SaltStack adalah program pengurusan konfigurasi berasaskan python yang dioptimumkan untuk automasi fail konfigurasi, penyebaran dan apa sahaja yang perlu dilakukan

Cara Pasang dan Konfigurasikan GoCD pada CentOS 7

Cara Pasang dan Konfigurasikan GoCD pada CentOS 7

Menggunakan Sistem Berbeza? GoCD adalah sistem penyampaian dan automasi berterusan sumber terbuka. Ia membolehkan anda memodelkan aliran kerja yang kompleks menggunakan selari yang

Cara Memasang Jenkins di CentOS 7

Cara Memasang Jenkins di CentOS 7

Jenkins adalah alat CI open source yang popular (Continuous Integration) yang banyak digunakan untuk pembangunan, penyebaran, dan automasi projek. Artikel ini akan

Membuat Snapshot Dengan Packer

Membuat Snapshot Dengan Packer

Apa itu Packer? Packer adalah alat pengimejan pelayan yang dikembangkan oleh HashiCorp. Pengimejan pelayan; atau sebagai alternatif, infrastruktur yang tidak berubah; adalah alternatif yang popular

Cara Memasang SaltStack di CentOS 7

Cara Memasang SaltStack di CentOS 7

SaltStack, atau Salt, adalah penyelesaian pengurusan konfigurasi sumber terbuka yang popular yang boleh digunakan untuk melaksanakan pelaksanaan jarak jauh, pengurusan konfigurasi, cod

Cara Pasang dan Konfigurasi Ansible pada CentOS 7 untuk Penggunaan Dengan Windows Server

Cara Pasang dan Konfigurasi Ansible pada CentOS 7 untuk Penggunaan Dengan Windows Server

Menggunakan Sistem Berbeza? Ansible adalah alat sumber terbuka untuk mengotomatisasi tugas. Ia menguruskan konfigurasi pelayan Linux dan Windows anda. Ia befungsi

Menggunakan Pengurus Pakej Chocolatey pada Windows

Menggunakan Pengurus Pakej Chocolatey pada Windows

Pengenalan Chocolatey membawa pengurusan pakej yang menjadikan pentadbiran perisian dan dependensi mudah di Linux, ke Windows. Anda boleh dengan cepat dan mudah

Cara Memasang Foreman di CentOS 7

Cara Memasang Foreman di CentOS 7

Menggunakan Sistem Berbeza? Foreman adalah alat sumber bebas dan terbuka yang membantu anda dengan konfigurasi dan pengurusan pelayan fizikal dan maya. Forema

Cara Memasang Drone CI di Ubuntu 18.04

Cara Memasang Drone CI di Ubuntu 18.04

Pengenalan Drone adalah platform pengujian dan penghantaran automatik yang berterusan yang dijalankan di infrastruktur anda sendiri. Drone menyokong sebarang bahasa, perkhidmatan o

Cara Memasang dan Mengkonfigurasi Ansible pada Debian 9 untuk Penggunaan Dengan Pelayan Windows

Cara Memasang dan Mengkonfigurasi Ansible pada Debian 9 untuk Penggunaan Dengan Pelayan Windows

Menggunakan Sistem Berbeza? Ansible adalah alat sumber terbuka untuk mengautomasikan tugas. Ia menguruskan konfigurasi pelayan Linux dan Windows anda. Ia befungsi

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut