Category Archives: BigData

All stuff about Big Data

Ansible – Openshift

Pengantar

for you

Teknologi itu terkadang ‘mengganggu’ ya, dengan tanda kutip, teknologi itu kadang mengganggu dengan sifatnya yang selalu dinamis berkembang dari waktu ke waktu. Teringat hukum moore untuk grafik peningkatan kecepatan microprocessor, tidak saja kita dituntut untuk selalu update di setiap perkembangannya. Satu sisi, kita me-leverage diri memiliki kecakapan guna mendukung performansi di lingkungan pekerjaan. Salah satunya jika kita berbicara tentang sistem otomasi yang sangat berguna bagi para system administrator atau DevOps dalam mengelola puluhan atau bahkan ratusan server selain menggunakan kustomisasi script. Meksipun bukan hal yang baru, dilihat dari fitur yang disediakan ansible cukup mumpuni untuk hal ini. Ditambah kita bisa integrasikan dengan layanan openshift sebagai PaaS (Platform as a Service) atau container platform dimana kita bisa mengembangkan aplikasi yang kita buat (bisa menggunakan java, perl, javascript, php, python, ruby, atau .NET) dan dilakukan deployment.

Ansible

[root@master tifosilinux] # ansible –version
ansible 2.7.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u’/root/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’]
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]

Pada tulisan ini ansible 2.7 berjalan di atas OS CentOS 7 dengan tahap instalasi dan konfigurasi yang tidak sulit. Cukup menggunakan parameter berikut dan ansible sudah ada di dalam lingkungan sistem operasi kamu:

~# yum install -y epel-release && yum -y –enablerepo=epel install docker ansible git wget

Berikut konfigurasi yang digunakan di /etc/ansible/hosts :

[OSEv3:children]
masters
nodes

[OSEv3:vars]
ansible_ssh_user=tifosilinux

ansible_sudo=true
ansible_ask_sudo_pass=false
ansible_become=true

deployment_type=origin

#openshift_master_identity_providers=[{‘name’:’htpasswd_auth’,’login’:’true’,’challenge’:’true’,’kind’:’HTPasswdPasswordIdentityProvider’,’filename’: ‘/etc/origin/master/htpasswd’}]

containerized=true
openshift_release=v3.10
openshift_image_tag=v3.10
openshift_public_hostname=master.tifosilinux
# Untuk master default subdomain bisa di marking jika kita tidak melakukan pointing (menggunakan key) ke cloud hosting/ domain
#openshift_master_default_subdomain=apps.master.tifosilinux

[masters]
master.tifosilinux

[nodes]
master.tifosilinux openshift_node_labels=”{‘zone’:’west’}”
node.tifosilinux openshift_node_labels=”{‘zone’:’east’}”

Untuk result/ output dari versi ansible yang digunakan adalah sebagai berikut :

[root@master tifosilinux]# ansible –version
ansible 2.7.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u’/root/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’]
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] 

Tes dengan parameter berikut apakah master atau node me-reply dengan baik sesuai konfigurasi :

[root@master tifosilinux]# ansible -m ping master.tifosilinux
[DEPRECATION WARNING]: DEFAULT_ASK_SUDO_PASS option, In favor of Ansible Become, which is a generic framework. See become_ask_pass. , use become instead. This feature will be removed in
version 2.8. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: The sudo command line option has been deprecated in favor of the “become” command line arguments. This feature will be removed in version 2.9. Deprecation warnings can
be disabled by setting deprecation_warnings=False in ansible.cfg.
SUDO password:
master.tifosilinux | SUCCESS => {
“changed”: false,
“ping”: “pong”
}

Sebelumnya jangan lupa untuk menambahkan fungsi di ansible untuk melewatkan password (biasanya cara ini dilakukan jika mengalami kendala saat master/ node melakukan shared connection) serta cara bagaimana me-setting hostname dan copying key agar passwordless untuk master dan per node. Namun jangan lupa lakukan setting hostname sebelumnya.

[tifosilinux@master ~]$ hostnamectl set-hostname master.tifosilinux # lakukan juga di node
[tifosilinux@master ~]$ ssh-copy-id tifosilinux@master.tifosilinux # lakukan juga ke node
[tifosilinux@master ~]$ export ANSIBLE_ASK_SUDO_PASS=true

Kurang lebih cara tersebut sudah bisa dilakukan sebelum lebih jauh mengenal inventory, playbooks as configuration, deployment, and orchestration language, dan best practice nya 

Openshift

Brought to you by redhat

Seperti yang telah diterangkan di awal, openshift ini sangat membantu para developer melakukan deployment dan me-scale up aplikasi mereka. Melalui git kita dapat mengunduh openshift yang telah di integrated dengan ansible dengan tujuan kemudahan maintenance aplikasi yang berjalan diatas container atau instance dalam skala besar. Objective membuat aplikasi dengan framework django (dengan bahasa python) pun bisa dilakukan di environment openshift.

[tifosilinux@master ~]$ cd
[tifosilinux@master ~]$ git clone https://github.com/openshift/openshift-ansible.git

Terakhir, tinggal kita eksekusi parameter dengan menampilkan seluruh informasi / debugging berikut :

[tifosilinux@master ~]$ ansible-playbook -i /etc/ansible/hosts -vvvv openshift-ansible/playbooks/deploy_cluster.yml

Testimonial

Sekarang, saatnya saya review secara pribadi 😀 kesan-kesan menggunakan teknologi ini 😛 dan dengan jujur dan spontan saya katakan : “Cukup membuat saya enggan dengan teknologi ini 😀 “, karena setelah saya baca prerequisites nya (semisal) untuk openshift ini, membutuhkan requirement yang tidak kecil juga untuk ukuran orang yang hanya ingin sekedar mengenal dan mempelajari. Bagaimana tidak ?, lihat minimum requirement vCPU dan Memory di point-point berikut (untuk saya pribadi sih tidak masalah 🙂 , namun bagaimana dengan personal yang lain yang hanya ingin sekedar mengenal atau mungkin tertarik mengimplementasikan dengan uji coba terlebih dahulu) :

Masters– Physical or virtual system, or an instance running on a public or private IaaS.
– Base OS: RHEL 7.3, 7.4, or 7.5 with the “Minimal” installation option and the latest packages from the Extras channel, or RHEL Atomic Host 7.4.5 or later.
Minimum 4 vCPU (additional are strongly recommended).
Minimum 16 GB RAM (additional memory is strongly recommended, especially if etcd is co-located on masters).
– Minimum 40 GB hard disk space for the file system containing /var/. Minimum 1 GB hard disk space for the file system containing /usr/local/bin/.
– Minimum 1 GB hard disk space for the file system containing the system’s temporary directory.
– Masters with a co-located etcd require a minimum of 4 cores. 2 core systems will not work.
Nodes– Physical or virtual system, or an instance running on a public or private IaaS.
– Base OS: link:RHEL 7.3, 7.4, or 7.5 with “Minimal” installation option, or RHEL Atomic Host 7.4.5 or later.NetworkManager 1.0 or later.1 vCPU.
– Minimum 8 GB RAM.Minimum 15 GB hard disk space for the file system containing /var/
– Minimum 1 GB hard disk space for the file system containing /usr/local/bin/.
– Minimum 1 GB hard disk space for the file system containing the system’s temporary directory. 
– An additional minimum 15 GB unallocated space per system running containers for Docker’s storage back end; see Configuring Docker Storage. Additional space might be required, depending on the size and number of containers that run on the node.
External etcd Nodes– Minimum 20 GB hard disk space for etcd data.
– See the Hardware Recommendations section of the CoreOS etcd documentation for information how to properly size your etcd nodes.
– Currently, OpenShift Container Platform stores image, build, and deployment metadata in etcd. You must periodically prune old resources. If you are planning to leverage a large number of these resources, place etcd on machines with large amounts of memory and fast SSD drives.

Hasilnya ? ya sudah bisa ditebak :

Node Logging
master logging

PLAY RECAP
localhost : ok=8 changed=0 unreachable=0 failed=0
master.tifosilinux : ok=40 changed=0 unreachable=0 failed=1
node.tifosilinux : ok=20 changed=0 unreachable=0 failed=1

INSTALLER STATUS 
Initialization : Complete (0:00:50)
Health Check : In Progress (0:02:19)
This phase can be restarted by running: playbooks/openshift-checks/pre-install.yml


openshift-ansible recapitulation

Belum lagi terkendala masalah konifgurasi yang masih butuh banyak penyesuaian, akan cukup menyulitkan bagi sebagian orang.

root@master tifosilinux]# vim /home/tifosilinux/openshift-ansible/playbooks/init/sanity_checks.yml

Marking fitur validate openshift node group seperti berikut :


name: Run variable sanity checks
sanity_checks:
check_hosts: “{{ l_sanity_check_hosts | default(groups[‘oo_all_hosts’]) }}”
# node_group_checks is a custom action plugin defined in lib_utils.
#- name: Validate openshift_node_groups and openshift_node_group_name
# node_group_checks: {}

Belum lagi masalah kompatibilitas versi dari setiap dependensi 😀  (dalam hal ini openshift dan ansible bisa kita lihat versinya dengan params : ~# openshift version && ansible –version).
Jadi ya.. cukup merepotkan.

Salam

Advertisements

Big Data with Hadoop

12_196Bagi sebagian besar researcher supercomputer baik HA maupun HPC (lihat tulisan saya di supercomputer dg native GNU/ Linux https://tifosilinux.wordpress.com/category/artikel-hary/) pasti akan lebih tertarik kepada yang sifatnya pendistribusian, parallel maupun batch process pada komputer skala besar.

Cloudera Apache Hadoop tentu menjadi sebuah pilihan menarik bagi para Big Data Enthusiasm. Karena metode pendistribusian file system  (HDFS) yang telah digunakan yahoo dan ditawarkan apache ini sangat luar biasa. Secara awam, kita akan lebih mudah mengerti dengan penjelasan bergambar berikut, silahkan download di sini  komik-hadoop (sebelumnya terimakasih kepada mahasiswa-mahasiswa ITB atas ke-ikhlasan nya membagi informasi lewat situs http://develop.itb.ac.id:3000/projects/habibie_faried ).

Satu konsep yang tidak boleh kita lupakan mengenai hadoop ini adalah adanya namenode dan datanode (silahkan download dan simak dokumen ‘bergambar’ tersebut).

Continue reading