Ubuntuda SaltStacki Sütunlarla Kullanma 17.04

SaltStack, birçok sunucuda eşzamanlı olarak işlemleri çalıştırmak için harika bir araç olsa da, ayrıca "sütun" olarak adlandırılan benzersiz bir dosyada saklanan ana bilgisayar başına tanımlanmış yapılandırma ön ayarlarını da destekler. Bu kılavuzda, Nginx'i kurmak ve sütunları kullanarak sanal ana bilgisayarların dağıtımını otomatikleştirmek için küçük bir SaltStack formülü yazacağız.

Gereksinimler

  • Ubuntu 17.04 (ana) çalıştıran Vultr örneği
  • Ubuntu 17.04 (minyonlar) çalıştıran iki Vultr örneği

Master kurulumu

Daha yeni başlıyorsanız ve SaltStack master'ınızı henüz kurmadıysanız, SaltStack'ı kullanmaya nasıl başlayacağınızı açıklayan bu makaleye göz atın.

formül

SaltStack'ın minyonlarımızdaki işlemleri için gerekli olan dosyaları daha da içeren formülümüz için klasör oluşturmaya başlıyoruz.

mkdir -p /srv/salt/nginx

Klasörü oluşturduktan sonra init.sls, her formülün önemli bir parçası olan dosyayı yazmaya devam edebiliriz :

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

Muhtemelen fark ettiğiniz gibi, SaltStack dinamik yapılandırma dosyaları oluşturmak için Jinja şablonlama motorunu kullanır. Bu, yapılandırma şablonu dosyalarımızda yerel Python koduna erişme veya değişkenleri ayarlama ve benzeri gibi çok çeşitli olanaklar sunar. Bir sonraki adım, virtualhosts.confdosyamız için şablon oluştururken, önce klasörü oluşturmamız gerekiyor:

mkdir -p /srv/salt/nginx/files

Klasör oluşturulduktan sonra virtualhosts.jinjadosyayı yazmaya devam edebiliriz :

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

sütun

Formülü oluşturduktan sonra, Sütun tabanımızı kurabiliriz:

mkdir -p /srv/pillar/

Belirli bir sütun dosyasıyla eşleşen ana bilgisayarlara yönelik referanslar, top.slsaz önce oluşturduğumuz dizin içindeki dosyaya yazılır . Örneğimizde, hostname ile iki minyon olduğunu varsayıyoruz nginxwww1ve nginxwww2oysa her iki benzersiz sütun dosyasını atayacağız:

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

Ardından, nginxwww1alan adı example.com, belge kökü /var/www/example_com/ve dizin dosyaları için 81 numaralı bağlantı noktasında bir vhost dinlerken bir sütun dosyası oluşturmaya devam edeceğiz index.shtml:

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

nginxwww2Etki alanı example2.com, belge kökü /var/www/example2_com/ve dizin dosyaları için 82 numaralı bağlantı noktasında bir vhost dinlerken bir sütun dosyası oluşturmaya devam edeceğiz index.jsve index.css:

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

Not: Sütun dosyaları içinde saklanır/srv/pillar/

dağıtma

Artık ilk denememizi kölelerimizde güncelleyerek sütunlarla tamamlayabiliriz:

salt '*' saltutil.refresh_pillar

Daha sonra SaltStack formülünü çalıştırabiliriz:

salt '*' state.sls nginx

Onaylama

SaltStack formülü herhangi bir hata olmadan çalıştırılmış ve tamamlandıktan sonra, görmek gerekir nginxport dinlemesini 81üzerinde nginxwww1ve bağlantı noktasında 82üzerine nginxwww2onay olarak.

Sonuç

Bu oldukça hafif ama zaten güçlü SaltStack formülü, muhtemelen Let's Encrypt'in bir entegrasyonu, CGI veya PHP arka uçları desteği ve manuel olarak yapabileceğiniz her şey ile HTTPS desteği eklemek için daha da genişletilebilir. Bu kılavuz, yapılandırma dosyalarının dağıtımı için kullanılan SaltStack formülleri ve sütunları hakkında temel bir fikir vermiş olmalıdır. Mutlu otomasyon!

Yorum bırak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.