Menggunakan SaltStack With Pillars di Ubuntu 17.04

Sementara SaltStack adalah alat yang hebat untuk menjalankan operasi pada banyak server secara bersamaan, SaltStack juga mendukung preset konfigurasi terdefinisi per host yang disimpan dalam file unik yang selanjutnya disebut "pillar". Dalam panduan ini, kita akan menulis formula SaltStack kecil untuk menginstal Nginx dan mengotomatiskan penyebaran host virtual menggunakan pilar.

Persyaratan

  • Contoh Vultr menjalankan Ubuntu 17.04 (master)
  • Dua instance Vultr yang menjalankan Ubuntu 17.04 (minion)

Menyiapkan master

Jika Anda baru memulai dan belum menyiapkan master SaltStack Anda, lihat artikel ini yang menjelaskan cara memulai dengan SaltStack.

Rumus

Kita mulai dengan membuat folder untuk formula kita yang selanjutnya menyimpan file yang diperlukan untuk operasi SaltStack di antek-antek kita.

mkdir -p /srv/salt/nginx

Setelah membuat folder, kita dapat melanjutkan menulis init.slsfile yang merupakan bagian penting dari setiap rumus:

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 mungkin Anda perhatikan, SaltStack menggunakan mesin templating Jinja untuk menghasilkan file konfigurasi dinamis. Ini memberikan berbagai kemungkinan dalam file template konfigurasi kami, seperti mengakses kode Python asli atau variabel pengaturan dan sejenisnya. Langkah selanjutnya terdiri dari membuat template untuk virtualhosts.conffile kita , sedangkan kita perlu membuat folder terlebih dahulu:

mkdir -p /srv/salt/nginx/files

Setelah folder dibuat, kita dapat melanjutkan menulis virtualhosts.jinjafile:

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

Pilar

Setelah membuat rumus, kita dapat melanjutkan dan mengatur basis Pilar kami:

mkdir -p /srv/pillar/

Setiap referensi untuk host yang cocok dengan file pilar tertentu ditulis ke dalam top.slsfile dalam direktori yang baru saja kita buat. Dalam contoh kami, kami menganggap bahwa dua antek ada dengan nama host nginxwww1dan nginxwww2sedangkan kami akan menetapkan keduanya file pilar unik:

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

Selanjutnya, kita akan melanjutkan membuat file pilar nginxwww1sementara kita akan membuat vhost mendengarkan pada port 81 untuk domain example.com, root dokumen /var/www/example_com/dan file indeks menjadi index.shtml:

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

Kami akan melanjutkan dengan membuat file pilar nginxwww2sementara kami akan membuat vhost mendengarkan pada port 82 untuk domain example2.com, keberadaan root dokumen /var/www/example2_com/dan file indeks menjadi index.jsdan index.css:

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

Catatan: File pilar disimpan di dalamnya/srv/pillar/

Menyebarkan

Kami sekarang dapat menyelesaikan percobaan pertama kami dengan pilar dengan memperbarui mereka di kaki tangan kami:

salt '*' saltutil.refresh_pillar

Setelah itu, kita bisa menjalankan formula SaltStack:

salt '*' state.sls nginx

Mengkonfirmasikan

Setelah formula SaltStack dijalankan dan diselesaikan tanpa kesalahan, kita seharusnya dapat melihat nginxmendengarkan pada port 81on nginxwww1dan on port 82on nginxwww2sebagai konfirmasi.

Kesimpulan

Formula SaltStack yang agak ringan namun kuat ini dapat diperluas lebih jauh untuk menambahkan dukungan untuk HTTPS, mungkin dengan integrasi Let's Encrypt, dukungan untuk backend CGI atau PHP dan semua yang dapat Anda lakukan secara manual juga. Panduan ini seharusnya memberi Anda ide dasar formula dan pilar SaltStack yang digunakan untuk penyebaran file konfigurasi. Selamat mengotomatisasi!

Tinggalkan Komentar

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.