Konsolos - Kurulum
Gösteri amacıyla, -dev modunu kullanarak geliştirici modunda konsül aracısını kullanacağız. Sadece yerel makine kurulumu için tek bir sistem konsülü kurulumu yapacağız.Please do not use this single node consul cluster in your production. Hashicorp'un tek düğümlü konsolos kümesinin durum senaryosunda bahsettiği gibi,the data loss is inevitable.
Consul Kuruluyor
Consul, www.consul.io/downloads.html adresindeki İndirilenler sayfasından yüklenebilir.
Binary paketi, makinenizin İndirilenler bölümünden çıkarabilirsiniz.
$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/
Şimdi konsolosluğu kullanmaya başlayalım. -dev flag.
$ consul agent -dev -data-dir=/tmp/consul
Çıktı, aşağıdaki ekran görüntüsünde gösterildiği gibi olacaktır.
Şimdi aşağıdaki komutu kullanarak konsolos üyelerinizi kontrol edebilirsiniz.
$ consul members
Çıktı, aşağıdaki ekran görüntüsünde gösterildiği gibi olacaktır.
Bu düğüme başka düğümler eklemek istiyorsanız -
$ consul join <Node 2> <Node 3>
Alternatif olarak, Düğüm 2 ve 3'te aşağıdaki komutu çalıştırabilirsiniz -
$ consul join <Node 1>
Komut Satırını Kullanma
Konsolosun komut satırı birkaç farklı seçenekten oluşur, en yaygın kullanılanlardan bazıları aşağıdaki gibidir:
agent - bir Konsolos ajanı çalıştıran.
configtest - bir yapılandırma dosyasını doğrulamak için.
event - yeni bir etkinlik başlatmak için.
exec - Konsolos düğümlerinde bir komut yürütmek için.
force-leave - kümenin bir üyesini kümeden ayrılmaya zorlamak.
info - bize operatörler için hata ayıklama bilgilerini sağlar.
join - Konsolosluk temsilcisinin kümeye katılmasını sağlamak.
keygen - yeni bir şifreleme anahtarı oluşturmak için.
keyring - dedikodu katmanı şifreleme anahtarlarını yönetmek için.
kv - anahtar-değer deposuyla etkileşim kurmak için.
leave - Konsolosluk grubunu terk etmek ve zorlamadan kapatmak.
lock - bir kilidi basılı tutmak için bir komut yürütmek.
maint - düğümü veya servis bakım modunu kontrol etmek için.
members - Konsolos kümesinin üyelerini listeler.
monitor - Konsolosluk temsilcisinden günlükleri yayınlar.
operator - bize Konsolos operatörleri için bir dizi araç sağlar.
reload - ajanı yapılandırma dosyalarını yeniden yüklemesi için tetikler.
rtt - düğümler arasındaki ağ gidiş dönüş süresini tahmin eder.
snapshot - Consul sunucu durumunun anlık görüntülerini kaydeder, geri yükler ve denetler.
version - güncel Konsolosluk versiyonunu yazdırmak için.
watch - Konsolosluktaki değişikliklere dikkat etmek.
Konsolos Şablonu
Consul şablonu bize Consul örneğini sorgulayan ve dosya sistemindeki herhangi bir sayıda belirtilen şablonu güncelleyen bir arka plan programı sağlar. Konsolos şablonu, güncelleme işlemi tamamlandığında isteğe bağlı olarak rastgele komutlar çalıştırabilir. Bu seçenek, konsolos kümesini her şeyi manuel olarak kendi başımıza yapmadan kurmamıza yardımcı olur.
Konsolos şablonu şu adreste oluşturulacaktır: /tmp/<name-of-file>.conf.tmpfl. Şablonun yazıldığı dilHashicorp Configuration Language (HCL).
Konsolos şablonunu bu sayfadan indirebilirsiniz .
Aşağıdaki komutu kullanarak deneyin -
$ ./consul-template -h
Çıktı, aşağıdaki ekran görüntüsünde gösterildiği gibi olacaktır.
Bu ikili dosyayı daha belirgin bir alana taşımak istiyorsanız, böylece her seferinde kullanıcı için kullanılabilir. Aşağıdaki komutları yazabilirsiniz -
$ chmod +x consul-template
$ sudo mv consul-template /usr/share/bin/
Demo amacıyla, örnek bir konfigürasyon kullanacağız. nginxhizmetimiz olarak kullanılmak üzere. Adresinde daha fazla demo deneyebilirsinizhttps://github.com/hashicorp/consul-template/tree/master/examples veya daha iyisi kendi şablonunuzu yazın.
$ vim /tmp/nginx.conf.ctmpl
Çıktı, aşağıdaki ekran görüntüsünde gösterildiği gibi olacaktır.
Yapılandırma dosyası şöyle görünebilir -
{{range services}} {{$name := .Name}} {{$service := service .Name}}
upstream {{$name}} {
zone upstream-{{$name}} 64k;
{{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60
weight = 1;
{{else}}server 127.0.0.1:65535; # force a 502{{end}}
} {{end}}
server {
listen 80 default_server;
location / {
root /usr/share/nginx/html/;
index index.html;
}
location /stub_status {
stub_status;
}
{{range services}} {{$name := .Name}}
location /{{$name}} {
proxy_pass http://{{$name}};
}
{{end}}
}
Şimdi konsol şablonu ikili dosyasını kullanarak, lütfen aşağıdaki komutları çalıştırın -
$ consul-template \
-template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
Önceki komutla işlem başladı. Daha sonra başka bir terminal açabilir ve aşağıdaki komutu kullanarak nginx.conf dosyasının tamamen işlenmesini görüntüleyebilirsiniz.
$ cat /etc/nginx/conf.d/default.conf
Çıktı, aşağıdaki ekran görüntüsünde gösterildiği gibi olacaktır.