Di blog sebelumnya, kami menunjukkan kepada Anda cara mengatur mesin kami dengan Wayang dan kemudian menginstal dan mengkonfigurasi MongoDB. Karena kita akan mengonfigurasi sejumlah node atau lebih tepatnya mesin, kita membutuhkan seorang dalang. Namun dalam kasus kami, kami akan membuat repositori git tempat kami akan mendorong manifes kami dan menerapkannya ke mesin kami.
Untuk membuat repositori git lokal, pertama-tama pilih jalur yang ingin Anda gunakan yaitu /opt/. Kemudian buat repositori git dengan menjalankan repositori $sudo mkdir. Dapatkan izin pengguna root untuk mengubah konten direktori ini dengan mengeluarkan perintah $sudo chown vagrant:vagrant repository. Untuk menginisialisasi direktori ini sebagai repositori git setelah mengeluarkan perintah $ cd repository, jalankan $ git init --bare --shared jika Anda menavigasi ke direktori ini, Anda sekarang akan melihat sesuatu seperti
[email protected]:/vagrant/repository$ ls -l
total 12
-rw-rw-r-- 1 vagrant vagrant 23 Jul 15 07:46 HEAD
drwxr-xr-x 1 vagrant vagrant 64 Jul 15 07:46 branches
-rw-rw-r-- 1 vagrant vagrant 145 Jul 15 07:46 config
-rw-rw-r-- 1 vagrant vagrant 73 Jul 15 07:46 description
drwxr-xr-x 1 vagrant vagrant 352 Jul 15 07:46 hooks
drwxr-xr-x 1 vagrant vagrant 96 Jul 15 07:46 info
drwxr-xr-x 1 vagrant vagrant 128 Jul 15 07:46 objects
drwxr-xr-x 1 vagrant vagrant 128 Jul 15 07:46 refs
-rw-r--r-- 1 vagrant vagrant 0 Jul 1 15:58 test.pp
Ini adalah struktur dasar dari repositori git dan opsi --bare dan --share akan memungkinkan kita untuk mendorong dan menarik file dari direktori.
Kita perlu menyiapkan sistem yang memungkinkan komunikasi antara mesin yang terlibat dan server master jarak jauh ini. Sistem dalam hal ini akan disebut sebagai daemon. Daemon akan menerima permintaan dari host jarak jauh untuk menarik atau mendorong file ke repositori ini. Untuk melakukannya, jalankan perintah $git daemon --reuseaddr --base-path=/opt/ --export-all --enable=receive-pack
Namun praktik yang baik adalah membuat file dari mana kita dapat menjalankan ini di latar belakang. Oleh karena itu, kita perlu menyetel layanan dengan mengeluarkan perintah sudo vim /etc/systemd/system/gitd. melayani. Di file baru isi dengan konten ini
[Unit]
Description=Git Repo Server Daemon
[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/opt/ --export-all --enable=receive-pack
[Install]
WantedBy=getty.target
DefaultInstance=ttyl
Simpan file dan keluar dengan menekan
[email protected]:/opt/repository$ systemctl start gitd
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'gitd.service'.
Authenticating as: vagrant,,, (vagrant)
Password:
==== AUTHENTICATION COMPLETE ===
To check if the service is running $ ps -ef | grep git and you will get:
[email protected]:/opt/repository$ ps -ef | grep git
root 1726 1 0 07:48 ? 00:00:00 /usr/bin/git daemon --reuseaddr --base-path=/opt/ --export-all --enable=receive-pack
root 1728 1726 0 07:48 ? 00:00:00 git-daemon --reuseaddr --base-path=/opt/ --export-all --enable=receive-pack
vagrant 1731 1700 0 07:48 pts/0 00:00:00 grep --color=auto git
Sekarang jika kita menjalankan $ git clone git://198.168.1.100/repository (ingat untuk mengubah alamat IP dengan IP jaringan mesin Anda) di direktori root, Anda akan mendapatkan folder repositori yang baru dibuat . Ingatlah untuk mengonfigurasi kredensial Anda dengan membatalkan komentar pada email dan kata sandi di file konfigurasi. Jalankan $ git config --global --edit untuk mengakses file ini.
Repositori ini akan bertindak sebagai server pusat kami untuk semua manifes dan variabel.
Menyiapkan Lingkungan
Sekarang kita perlu mengatur lingkungan dari mana kita akan mengkonfigurasi node. Pertama, pindah ke direktori gelandangan dan kloning repositori yang baru saja kita buat dengan perintah yang sama seperti di atas.
Hapus direktori manifes di folder gelandangan dengan menjalankan $rm -r manifest/.
Buat folder produksi baru dengan $ mkdir production dan klon repositori yang sama yang kita buat di atas dengan $ git clone git://198.168.1.100/repository . (jangan lupa titik di akhir)
Salin dan tempel konten lingkungan produksi puppetlabs ke dalam folder produksi ini dengan mengeluarkan cp -pr /etc/puppetlabs/code/environments/production/* . Direktori produksi Anda sekarang akan terlihat seperti ini
[email protected]:/vagrant/production$ ls -l
total 8
drwxr-xr-x 1 vagrant vagrant 64 Apr 26 18:50 data
-rw-r--r-- 1 vagrant vagrant 865 Apr 26 18:50 environment.conf
-rw-r--r-- 1 vagrant vagrant 518 Apr 26 18:50 hiera.yaml
drwxr-xr-x 1 vagrant vagrant 96 Jul 2 10:45 manifests
drwxr-xr-x 1 vagrant vagrant 64 Apr 26 18:50 modules
-rw-r--r-- 1 vagrant vagrant 0 Jul 1 16:13 test.pp
Kami perlu mendorong perubahan ini ke repositori root sehingga kami menjalankan
$ git add * && git commit -m "adding production default files" && git push
Untuk menguji apakah konfigurasi git berfungsi, kita dapat menghapus konten di direktori /etc/puppetlabs/code/environments/production/ dengan menjalankan $ sudo rm -r * di direktori ini lalu tarik file dari repositori master sebagai pengguna root yaitu $ git clone git://198.168.1.100/repository . (jangan lupa titik di akhir). Hanya direktori dengan konten yang ditarik dalam kasus ini sehingga Anda mungkin melewatkan folder manifes dan modul. Operasi ini dapat dilakukan di semua mesin yang terlibat baik mesin boneka master atau mesin klien. Jadi tugas kita akan menarik perubahan dari server utama dan menerapkan perubahan menggunakan manifes.
Manifes Eksekusi
Ini adalah skrip yang akan kita tulis untuk membantu kita menarik perubahan dan menerapkannya secara otomatis ke node kita yang lain. Anda tidak hanya harus menggunakan lingkungan produksi, Anda dapat menambahkan sebanyak mungkin lingkungan kemudian mendiktekan boneka dari mana yang akan ditelusuri. Di direktori root production/manifests, kami akan membuat manifes eksekusi sebagai puppet_exec.pp dan mengisinya dengan konten berikut
file { "This script will be pulling and applying the puppet manifests":
path => '/usr/local/bin/exec-puppet',
content => 'cd /etc/puppetlabs/code/environments/production/ && git pull; /opt/puppetlabs/bin/puppet apply manifests/'
mode => "0755"
}
cron {'exec-puppet':
command => '/usr/local/bin/exec-puppet',
hour => '*',
minute => '*/15'
}
File adalah sumber daya yang telah dijelaskan untuk mengeksekusi manifes boneka. Tambahkan jalur yang sesuai untuk file yang kita buat dan isi dengan perintah yang akan dikeluarkan saat akan dieksekusi.
Perintah dijalankan secara sistematis yaitu, pertama-tama kita menavigasi ke lingkungan produksi, menarik perubahan repositori dan kemudian menerapkannya ke mesin.
Kami menyediakan direktori manifes ke setiap node dari mana ia dapat memilih manifes yang diarahkan ke sana untuk aplikasi.
Durasi di mana file eksekusi akan dijalankan juga disetel. Dalam hal ini untuk setiap jam, jalankan file 4 kali.
Untuk menerapkan ini ke mesin kami saat ini, $ cd /vagrant/production. Tambahkan semuanya ke git dengan menjalankan $ git add * lalu $ git commit -m “tambahkan konfigurasi cron” dan terakhir $ git Push. Sekarang navigasikan ke $ cd /etc/puppetlabs/code/environments/production/ dan $ Sudo git pull
Sekarang jika kita memeriksa folder manifes di direktori ini, Anda akan melihat wayang_exec.pp dibuat seperti yang baru saja kita definisikan.
Sekarang jika kita menjalankan $ sudo doll apply manifests/ dan periksa apakah file exec-puppet telah dibuat $ cat /usr/local/bin/exec-puppet
Isi file ini harus
cd /etc/puppetlabs/code/environments/production/ && git pull; /opt/puppetlabs/bin/puppet apply manifests/
Pada titik ini kita telah melihat bagaimana kita dapat menarik dan mendorong perubahan ke mesin master kita yang harus diterapkan ke semua node lainnya. Jika kita menjalankan $ sudo crontab -l, beberapa peringatan penting akan disorot pada file exec-puppet yang dibuat.
# HEADER: This file was autogenerated at 2019-07-02 11:50:56 +0000 by puppet.
# HEADER: While it can still be managed manually, it is definitely not recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name' should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: exec-puppet
*/15 * * * * /usr/local/bin/exec-puppet
Mengonfigurasi Mesin
Misalnya file gelandangan kita terlihat seperti
Vagrant.configure("2") do |config|
config.vm.define "puppet" do |puppet|
puppet.vm.box = "bento/ubuntu-16.04"
#puppet.vm.hostname = "puppet"
#puppet.vm.network "private_network", ip: "192.168.1.10"
end
config.vm.define "db" do |db|
db.vm.box = "bento/ubuntu-16.04"
end
end
Dalam hal ini kita memiliki mesin boneka di mana kita telah melakukan konfigurasi kita dan kemudian mesin db. Sekarang kita mengotomatiskan mesin sedemikian rupa sehingga setiap kali mesin db dijalankan, ia telah menginstal boneka dan file cron sudah tersedia untuk menarik manifes dan menerapkannya sesuai. Anda perlu merestrukturisasi konten mesin db menjadi sebagai berikut
config.vm.define "db" do |db|
db.vm.box = "bento/ubuntu-16.04"
vm.provision "shell", inline: <<-SHELL
cd /temp
wget https://apt.puppetlabs.com/puppet5-release-xenial.deb
dpkg -i puppet5-release-xenial.deb
apt-get update
apt-get install -y puppet-agent
apt-get install -y git
rm -rf /etc/puppetlabs/code/environments/production/*
cd /etc/puppetlabs/code/environments/production/
git clone git://198.168.1.100/repository .
/opt/puppetlabs/bin/puppet apply /etc/puppetlabs/code/environments/production/manifests/puppet_exec.pp
SHELL
End
Hingga tahap ini, struktur direktori boneka Anda harus seperti ini
Jika sekarang Anda menjalankan mesin db dengan perintah $ gelandangan up db, beberapa sumber daya akan diinstal dan skrip yang baru saja kita definisikan dapat ditemukan di direktori produksi/manifest. Namun, disarankan untuk menggunakan dalang yang dibatasi hanya 10 node untuk versi gratis jika tidak, Anda harus berlangganan paket. Puppet master menawarkan lebih banyak fitur dan mendistribusikan manifes ke beberapa node, melaporkan log, dan lebih banyak kontrol pada node.
Modul Wayang Mongodb
Modul ini digunakan dalam instalasi MongoDB, mengelola instalasi server mongod, konfigurasi daemon mongod dan manajemen pengaturan Ops Manager selain daemon MongoDB-mms.
Kesimpulan
Di blog berikutnya kami akan menunjukkan kepada Anda cara menerapkan Kumpulan Replika MongoDB dan Pecahan menggunakan Wayang.