DRAFT
Tulisan kali ini mengupas tentang irgsh-web, salah satu dari 3 komponen utama IRGSH. Sebelum menuju kesana, mari kita petakan alur kerja pengembangan distribusi BlankOn secara keseluruhan.
- (1) Infra menyiapkan repropro dan layanan repository. Reprepro sudah di-update ke Sid.
- (2) Pemaket memasukkan paket ke IRGSH.
- (3) Paket dibangun oleh IRGSH.
- (4) Paket jadi dikirim ke ke irgsh-web/taskinit
- (5) Paket jadi dikirim ke irgsh-repo.
- (6) Paket jadi disuntik ke reprepro oleh irgsh-repo.
- (7) Infra menjahit berkas ISO dan menyiapkan layanan untuk mengunduh ISO.
- (8) Jaminan Kualitas menguji berkas ISO.
Persiapan
Tulisan berseri ini dirancang untuk membangun ekosistem IRGSH di satu mesin dan telah dicoba di mesin dengan spesifikasi CPU 2 core, RAM 2GB, ruang penyimpanan 30GB dan sistem operasi Debian Jessie. Untuk mengupdate reprepro ke Sid (1), perlu ruang penyimpanan minimal 200GB. Kita akan coba bangun irgsh-web dulu. Reprepro akan dibuat saat membangun irgsh-repo, namun tidak disync ke Sid.
Pada mesin uji coba kita, akan ada 3 pengguna yang mewakili masing-masing komponen irgsh, yaitu irgsh-web
, irgsh-node
dan irgsh-repo
.
irgsh-web
Membangun irgsh-web
- Pasang paket-paket yang diperlukan
sudo apt-get update
sudo apt-get install -y -qqq make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils sudo python python-pip python-dev python-debian dpkg-dev rabbitmq-server git-core nginx libpq-dev git vim net-tools postgresql
- Buat pengguna baru dengan nama pengguna
irgsh-web
kemudian masuk sebagai pengguna tersebut. - Siapkan Python 2.6.x dengan menggunakan
pyenv
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
- Tambahkan potongan kode ini di
~/.bashrc
:export PATH="/home/irgsh-web/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
source ~/.bashrc
pyenv install 2.6.6
-
cd /home/irgsh-web
- Kloning repo
irgsh-web
danpython-irgsh
git clone git://github.com/BlankOn/python-irgsh.git
git clone git://github.com/BlankOn/irgsh-web.git
- Buat symlink untuk
python-irgsh
:cd irgsh-web
ln -s ../python-irgsh/irgsh
- Bangun,
./build.sh
. Jika berhasil, di./bin
akan ada berkasdjango
yang siap digunakan untuk menjalankanirgsh-web
.
Mempersiapkan sertifikat
Sertifikat-sertifikat ini nantinya akan digunakan sebagai otentikasi antara taskinit dan pekerjanya.
Inisialisasi CA
Jika sudah ada CA (Certificate Authority), buat sertifikat baru untuk komponen irgsh-web. Jika belum ada, berikut cara menginisalisasi CA baru dan membuat sertifikat turunan.
- Masuk ke
/home/irgsh-web/irgsh-web/certs/
- Inisialisasi CA,
./scripts/ca.pl -newcert
. Anda akan diminta passphrase dan beberapa informasi sertifikat. - Siapkan direktori untuk manajemen sertifikat,
./scripts/prepare.sh
Membuat sertifikat turunan untuk irgsh-web
./scripts/new-cert.sh irgsh-web
, Anda akan dimintai passphrase CA untuk menandatangani sertifikat baru tersebut- Sertifikat keluaran untuk irgsh-web terletak di
/home/irgsh-web/irgsh-web/certs/irgsh-web/
.