Deployment

Adalah tahapan persiapan server produksi, semua service development akan diganti dengan service produksi yang stabil

MapProxy

Kita akan membuat script deployment dari MapProxy dengan cara:

# mapproxy-util create -t wsgi-app -f agm.yaml config.py

Didalam file config.py berisi

from mapproxy.wsgiapp import make_wsgi_app
application = make_wsgi_app(r'/var/mymapproxy/agm.yaml')
#application = make_wsgi_app(r'/var/mymapproxy/agm.yaml', reloader=True)

script yang bawah adalah script yang saya tambahkan jika anda ingin reload otomatis MapProxy apabila ada perubahan di file config agm.yaml

gunicorn

gnunicorn merupakan python web server yang berbasiskan Asyncrhonous. Kita akan menggunakan gunicorn untuk menjalankan script server config.py pastikan gunicorn sudah diinstall terlebih dahulu, yang kemudian dialnjutkan dengan instalasi eventlet:

# pip install gunicorn
# pip install eventlet

Jika gunicorn dan eventlet sudah terinstall maka jalankan script server config.py

# gunicorn -k eventlet -w 3 -b :8080 config:application

Jika berjalan sempurna dan bisa diakses maka kita akan membuat service gunicorn di sistem operasi pada centos 6 kita

spawning

Jika gunicorn mengalami masalah load peta anda bisa mencari solusi lainnya dengan menggunakan spawning. Spawning merupakan aplikasi wsgi. install spawning menggunakan pip

# pip install spawning

jalankan spawning

# spawning config.application --threads=8 --processes=4   --port=8080

uwsgi

jika anda memiliki ram kecil dan pengunjung mapproxy yang sedikit, anda bisa menggunakan uwsgi. terlebih dahulu lakukan instalasi dengan pip dan jalankan.

# pip install uwsgi
# uwsgi --http :8080 --wsgi-file config.py

Untuk melengkapi parameter lainnya kita buatkan terlebih dahulu file mapproxy.ini yang berisi parameter uwsgi

[uwsgi]
http = 0.0.0.0:8080
chdir = /var/mymapproxy/
module = config:application
#threads = 2
master = true
processes = 5

uid = awangga
vacuum = true

die-on-term = true

Sehingga kita bisa menjalankannya dengan perintah

# uwsgi mapproxy.ini

untuk menjalankan dibelakang layang tambahkan tanda ampersand (&) dibelakang perintah kemudian pasang nohup agar aplikasi tetap terus berjalan

# nohup uwsgi mapproxy.ini &

supervisor

Supervisor berfungsi untuk mengawasi proses suapaya tetap jalan, jika sebuah aplikasi mati maka supervisor akan menjalankannya kembali. Pertama kita install supervisor.

# easy_install supervisor

sekarang kita akan menambahkan uwsgi yang kita pakai untuk menjalankan layanan mapproxi ke dalam pengawasar supervisor.

buat file di /etc/init/mapproxy.conf

start on runlevel [2345]
stop on runlevel [!2345]

respawn

setuid awangga
setgid awangga

chdir /var/mymapproxy

exec gunicorn -k eventlet -w 8 -b :8080 application \
    >>/var/log/mapproxy/gunicorn.log 2>&1

Nginx Proxy

Cek terlebih dahulu selinux agar nginx bisa membaca socket

# tail /var/log/audit/audit.log
# getenforce
Enforcing
# setenforce 0
# getenforce
Permissive
# systemctl restart nginx

Setelah itu buka selinux agar mengijinkan nginx membaca soket secara permanen

# yum install policycoreutils-python
# grep nginx /var/log/audit/audit.log | audit2allow
# grep nginx /var/log/audit/audit.log | audit2allow -m nginx
# grep nginx /var/log/audit/audit.log | audit2allow -M nginx
# semodule -i nginx.pp

results matching ""

    No results matching ""