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

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