Setup Domain Name Server(Linux-Bind-DNS) untuk perusahaan ISP di Jawa Tengah

Saya dikontak adik nya teman saya yang pernah saya buatin Warnet tahun 2000 an di Pekalongan. Sekarang mereka merintis usaha Internet Service Provider di Batang, Jawa Tengah dimana masih proses Uji Laik Operasi (ULO) ke Kominfo.

Singkat cerita saya bantu remote ke server IBM yang sudah mereka siapkan dengan sistem operasi Linux Ubuntu 20.04.5 LTS jadi ada 2 DNS Server pertama untuk Primary dan Secondary.

Untuk ini yang reliable dan pernah saya setup di perusahaan ISP tempat saya bekerja tahun 2006 memakai BIND 9 Internet Systems Consortium.

-Setup Linux Bind 9 Round Robin (nameserver primary dan secondary).

-Setup Bind RPZ Domain Name Service Response Policy Zones (Trustpositif Kominfo).

-Linux hardening.

Project selesai dan sudah berhasil di testing di client2 mereka. Jika ada didaerah Batang yang tertarik memakai layanan internet mereka bisa kontak mereka di https://www.tujuhlangit.net

Kubernetes, Docker, Vagrant and Nginx.

Keep the history of Kubernetes, Docker, Vagrant, and Nginx.

hostnamectl set-hostname kubemaster.henrycloudlocal.id
vim /etc/hosts
free -m
swapoff -a
vim /etc/hosts
vim /etc/fstab
clear
setenforce 0
vim /etc/sysconfig/selinux
modprobe br_netfilter
echo “1” > /proc/sys/net/bridge/bridge-nf-call-iptables
curl -fsSL get.docker.com | sh
usermod -aG docker vagrant
id vagrant
vim /etc/yum.repos.d/kubernetes.repo
clear
yum install -y kubelet kubeadm kubectl
systemctl enable docker
systemctl enable kubelet
systemctl start docker
systemctl status docker
kubeadm init –apiserver-advertise-address=172.31.47.141 –pod-network-cidr=10.244.0.0/16
docker info | grep -i cgroup
vim /etc/docker/daemon.json
systemctl restart docker
vim /etc/docker/daemon.json
systemctl restart docker
vim /etc/docker/daemon.json
systemctl restart docker
systemctl status docker
cat /etc/docker/daemon.json
kubeadm reset
kubeadm init –apiserver-advertise-address=172.31.47.141 –pod-network-cidr=10.244.0.0/16
vim join.txt
su – vagrant
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf
$HOME/.kube/config
sudo chown $(id -u):$(id -g)
$HOME/.kube/config
ls -ld /home/vagrant/.kube/
exit
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
kubectl get nodes
sudo cat /root/join.txt
cat /etc/docker/daemon.json
{ “exec-opts”: [“native.cgroupdriver=systemd”]
kubectl get nodes
kubectl create deployment nginx –image=nginx
kubectl get pods
kubectl get pods -o wide
kubectl scale deployment nginx –replicas=4
kubectl get pods -o wide
kubectl create namespace dev
kubectl create namespace test
kubectl create deployment
httpd-dev –image=httpd -n dev
kubectl create deployment
tomcat-dev –image=tomcat -n dev
kubectl create deployment
mongo-dev –image=mongo -n dev
kubectl create deployment
httpd-test –image=httpd -n test
kubectl create deployment
tomcat-test –image=tomcat -n test
kubectl create deployment
mongo-test –image=mongo -n test
kubectl get pods -n dev
kubectl get pods -n test
kubectl get pods –all-namespaces
kubectl get pods
kubectl get pod
nginx-6799fc88d8-8tk4t –show-labels
kubectl label pod
nginx-6799fc88d8-8tk4t version=v1
kubectl get pod nginx-6799fc88d8-8tk4t –show-labels
vi nginx-deployment.yaml
cat nginx-deployment.yaml
clear
kubectl create -f nginx-deployment.yaml
kubectl get pods
cat nginx-deployment.yaml
clear

Keep learning !

Tigergraph Installation with Docker

Let’s Connect, Analyze, and Learn from Data.!

TigerGraph is the world’s fastest graph analytics platform designed to unleash the power of interconnected data for deeper insights and better outcomes. The company supports applications such as IoT, AI, and machine learning to make sense of ever-changing big data.

TigerGraph’s massively parallel processing (MPP) architecture combined with an efficient query processing engine allow for analyzing entities and their relationships at scale. TigerGraph is fully ACID compliant, giving the ability to perform both transactional and analytic workloads on the same platform. As with data lakes, TigerGraph’s scalability and flexible schema allow the joining of diverse data sets.

This is my first time using and install the Tiger Graph. Prerequisites, my local setup:

-macOS Catalina 10.15.7

-Docker Desktop 3.6.0 on Mac

TigerGraph Enterprise Edition docker image

Step 1: Install Docker on Mac follow this link.

Step 2: Open Terminal on your Mac and follow these steps:

-Prepare a Shared Folder on Host OS to be shared with Docker Container:

henrygultom@MacBook-Pro ~ % mkdir tigergraph
henrygultom@MacBook-Pro ~ % cd tigergraph
henrygultom@MacBook-Pro tigergraph % mkdir data
henrygultom@MacBook-Pro tigergraph % chmod 777 data
henrygultom@MacBook-Pro tigergraph % ls
data

-Run TigerGraph Docker image as a daemon:

henrygultom@MacBook-Pro tigergraph % docker run -d -p 14022:22 -p 9000:9000 -p 14240:14240 –name tigergraph –ulimit nofile=1000000:1000000 -v ~/tigergraph/data:/home/tigergraph/mydata -t docker.tigergraph.com/tigergraph:latest
Unable to find image ‘docker.tigergraph.com/tigergraph:latest’ locally
latest: Pulling from tigergraph
528184910841: Pull complete
8a9df81d603d: Pull complete
636d9303bf66: Pull complete
672b5bdcef61: Pull complete
5d1235f9b296: Pull complete
819f1e6e507e: Pull complete
Digest: sha256:4f16402f6cece37de98911ff286d4b6c996e7a7dab0cab996f36a77ede304010
Status: Downloaded newer image for docker.tigergraph.com/tigergraph:latest
b3f33c6f7d7591b8c0a5a2fe13e94f37d48a55eb643171002357110ae1c40332
henrygultom@MacBook-Pro tigergraph %
henrygultom@MacBook-Pro tigergraph % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b3f33c6f7d75 docker.tigergraph.com/tigergraph:latest “/bin/sh -c ‘/usr/sb…” 48 minutes ago Up 48 minutes 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:14240->14240/tcp, :::14240->14240/tcp, 0.0.0.0:14022->22/tcp, :::14022->22/tcp tigergraph
henrygultom@MacBook-Pro tigergraph %

henrygultom@MacBook-Pro tigergraph % uname -a
Darwin MacBook-Pro.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Jun 22 19:49:55 PDT 2021; root:xnu-6153.141.35~1/RELEASE_X86_64 x86_64
henrygultom@MacBook-Pro tigergraph %

-Use SSH to connect to your container:

henrygultom@MacBook-Pro tigergraph % ssh -p 14022 tigergraph@localhost
The authenticity of host ‘[localhost]:14022 ([::1]:14022)’ can’t be established.
ECDSA key fingerprint is SHA256:yxJX13+vAPeEMuhhUE6Ni0qVMGzeUzci29Buv7qvZ6U.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘[localhost]:14022’ (ECDSA) to the list of known hosts.
tigergraph@localhost’s password:
Connection closed by ::1 port 14022
henrygultom@MacBook-Pro tigergraph %
henrygultom@MacBook-Pro tigergraph % ssh -p 14022 tigergraph@localhost
tigergraph@localhost’s password:
Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 5.10.47-linuxkit x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
tigergraph@b3f33c6f7d75:~$

-Start TigerGraph:

tigergraph@b3f33c6f7d75:~$ gadmin start
[ Info] If no serviceID is specified, it only starts services excluding the infrastructure. Use ‘gadmin start all’ to start all services.
[ Info] Starting ZK ETCD DICT KAFKA ADMIN GSE NGINX GPE RESTPP KAFKASTRM-LL KAFKACONN TS3SERV GSQL TS3 GUI
[ Error] ConnectionClosed (Unable to talk to ctrl, are all infrastructure services up? You can start them by ‘gadmin start infra’)
tigergraph@b3f33c6f7d75:~$
tigergraph@b3f33c6f7d75:~$ gadmin start all
[ Info] Starting EXE
[ Info] Starting CTRL
[ Info] Starting ZK ETCD DICT KAFKA ADMIN GSE NGINX GPE RESTPP KAFKASTRM-LL KAFKACONN TS3SERV GSQL TS3 IFM GUI
tigergraph@b3f33c6f7d75:~$


tigergraph@b3f33c6f7d75:~$
tigergraph@b3f33c6f7d75:~$ gsql
Welcome to TigerGraph.
GSQL > show v
vertex values var
GSQL > alter
alter
GSQL > alter
alter
GSQL > ls
—- Global vertices, edges, and all graphs
Vertex Types:
Edge Types:

Graphs:
Jobs:

JSON API version: v2
Syntax version: v1

GSQL > quit


tigergraph@b3f33c6f7d75:~$
tigergraph@b3f33c6f7d75:~$ ls
gsql-graph-algorithms mydata tigergraph tutorial
tigergraph@b3f33c6f7d75:~$ cd tutorial
tigergraph@b3f33c6f7d75:~/tutorial$ ls
2.x 3.x
tigergraph@b3f33c6f7d75:~/tutorial$
tigergraph@b3f33c6f7d75:~/tutorial$ cd 2.x/
tigergraph@b3f33c6f7d75:~/tutorial/2.x$ ls
gsql101 gsql102
tigergraph@b3f33c6f7d75:~/tutorial/2.x$ cd gsql101
tigergraph@b3f33c6f7d75:~/tutorial/2.x/gsql101$ ls
friendship.csv gsql101.gsql person.csv README.md
tigergraph@b3f33c6f7d75:~/tutorial/2.x/gsql101$ vim README.md
tigergraph@b3f33c6f7d75:~/tutorial/2.x/gsql101$

tigergraph@b3f33c6f7d75:~/tutorial/2.x/gsql101$ gsql gsql101.gsql
Dropping all, about 1 minute …
Abort all active loading jobs
Resetting GPE…
Successfully reset GPE
Stopping GPE GSE
Successfully stopped GPE GSE in 0.495 seconds
Clearing graph store…
Successfully cleared graph store
Starting GPE GSE RESTPP
Successfully started GPE GSE RESTPP in 0.075 seconds
Everything is dropped.
The vertex type person is created.
The edge type friendship is created.
Stopping GPE GSE RESTPP
Successfully stopped GPE GSE RESTPP in 17.650 seconds
Starting GPE GSE RESTPP
Successfully started GPE GSE RESTPP in 0.071 seconds
The graph social is created.
Semantic Check Fails: File or directory ‘$HOME/tutorial/gsql101/person.csv’ does not exist!
Semantic Check Fails: The FILENAME = ‘m1:/home/tigergraph/tutorial/gsql101/person.csv’ is not in a valid path format.

The job load_social could not be created!
tigergraph@b3f33c6f7d75:~/tutorial/2.x/gsql101$
tigergraph@b3f33c6f7d75:~/tutorial/2.x/gsql101$

tigergraph@b3f33c6f7d75:~/tutorial/2.x/gsql101$ gsql version
GSQL version: 3.1
GSQL commit number: 06c9098c895d88a30daf3ee307a428ee38f0a7b4
GSQL commit date: 2021-07-19 09:18:25 -0700
Copyright (c) 2014-2021 TigerGraph. All rights reserved.
This product is protected by U.S. and international copyright and intellectual property laws.
tigergraph@b3f33c6f7d75:~/tutorial/2.x/gsql101$

Continue – next tutorial:  https://docs.tigergraph.com/start/gsql-101/parameterized-gsql-query

Installing Kubernetes on Alibaba Cloud Elastic Compute Service

Baru sadar sekarang ternyata sudah ada 186 artikel/tutorial sejak tahun 2003 yang sudah saya tulis(author) dan publish di internet melalui blog saya di https://henry.gultom.or.id . Saya belajar  di komunitas jadi kita harus giving back ke komunitas kembali dan jangan simpan sendiri ilmunya nanti tidak menjadi berkat.

Era platform open-source masih terus digunakan sampai sekarang dan menjadi sangat populer, sejak 25 August 1991 Linus Benedict Torvalds mempublish Linux kernel pertama kali dan berkembang sampai Linux Distribution pertama di release. Tahun 1993 distribusi Linux Slackware lahir dan diikuti di tahun yang sama Linux Debian.  Oke cukup bicara histori, kita lanjut ke pendatang baru yang lagi sangat tenar sekarang yaitu Kubernetes.

Kubernetes merupakan platform open-source yang digunakan untuk melakukan manajemen workloads aplikasi yang dikontainerisasi, serta menyediakan konfigurasi dan otomatisasi secara deklaratif. Kubernetes berada di dalam ekosistem yang besar dan berkembang cepat. Servicesupport, dan perkakas Kubernetes tersedia secara meluas Kubernetes menyediakan manajemen environment yang berpusat pada kontainer. Kubernetes melakukan orkestrasi terhadap computingnetworking, dan inftrastruktur penyimpanan. Fitur inilah yang kemudian membuat konsep Platform as a Service (PaaS) menjadi lebih sederhana dilengkapi dengan fleksibilitas yang dimiliki oleh Infrastructure as a Service (IaaS).

Mau cepat paham ayo di coba/test/produce/reproduce jangan baca teori saja. Orang kita kadang malas mencoba, tapi maunya banyakin sertifikat saja.

Ujicoba saya kali ini menggunakan :
– Ubuntu 16.04.7 LTS (GNU/Linux 4.4.0-198-generic x86_64)
– Kubernetes dan Docker
– VM CPU and Memory 2Cores 4GiB running di Alibaba Cloud (sorry ini bukan promosi).

Let’s start, logged to VM using ssh :

sh-3.2# ssh root@47.254.16.185
The authenticity of host ‘47.254.16.185 (47.254.16.185)’ can’t be established.
ECDSA key fingerprint is SHA256:RveCyz8yQAJeS4dMElxwK3cWSUnZGdHirKrLmzIMRtc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘47.254.16.185’ (ECDSA) to the list of known hosts.
root@47.254.16.185’s password:
Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 4.4.0-198-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

38 packages can be updated.
38 of these updates are security updates.
To see these additional updates run: apt list –upgradable

Welcome to Alibaba Cloud Elastic Compute Service !

Last login: Thu Feb 18 17:01:24 2021
root@iZrj95zw0q0jnwnzbep2nxZ:~#

root@iZrj95zw0q0jnwnzbep2nxZ:~# apt-get update
Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu xenial InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security InRelease
Reading package lists… Done
root@iZrj95zw0q0jnwnzbep2nxZ:~#v

Install Docker :

Continue reading

3 Ways to Set Up a Linux Server on Alibaba Cloud

Alibaba Cloud Elastic Compute Service (ECS) provides a faster and more powerful way to run your cloud applications as compared with traditional physical servers. You can achieve great results on your cloud needs. With ECS, you can achieve more with the latest generation of CPUs as well as protect your instance from DDoS and Trojan attacks.

In this guide, we will talk about the best practices for provisioning your CentOS 6 server hosted on an Alibaba Cloud Elastic Compute Service (ECS) instance.

Prerequisites

  1. A valid Alibaba Cloud account. If you don’t have one already, sign up to the Free Trial to enjoy up to $300 worth in Alibaba Cloud products.
  2. An ECS instance running CentOS 6. You can select your preferred region and configurations; this will not affect the outcome of the server setup.
  3. A root password for your server.

Step 1: Connect to your Alibaba Cloud CentOS 6 Server

Locate the Internet IP address (Public IP address) associated with your Alibaba Cloud ECS Instance.

Continue reading

Membuat dashboards di Azure portal

Jika sudah memiliki subscription di Azure portal dan kita memiliki virtual machine yang sudah kita setup didalamnya makan kita dapat menbuat Dashboards yang dapat melihat cloud resources secara terorganisasi dan fokus.  Dengan dashboards ini menjadi workspace kita dapat mengakses task operasional setiap hari dan memonitor resources.

Pada Azure portal kita bisa mengcustom dahsboard tersebut dan mempublish serta share dengan pengguna lain. Berikut cara untuk memulainya :

  1. Login ke Azure portal : https://portal.azure.com
  2. Pada menu dropdown sebelah kiri Azure portal, pilih Dashboard.Azure Portal menu dropdown
  3. Di dashboard panel, pilih New dashboard dan Blank dashboard.New dashboard
  4. Kita ketik nama dashboard yang kita inginkan.
  5. Pada bagian Tile Gallery ada berbagai macam pilihan add ons yang bisa kita drag and drop ke sisi kanan dashboard, bisa diexplore lebih lanjut.
  6. Contoh kita mau memasukkan Avg Percentage CPU untuk salah satu virtual machine kita.
    1. Klik Home pada Azure portal lalu pilih Virtual machine(VM) dan nama VM yang sudah kita definisikan.
    2. lalu pilih Metrics dan pilih AVG Percentage CPU
    3. lalu pilih Pin to dashboard.

 

 

How to Deploy a Node.js Application on CentOS with Alibaba Cloud Starter Package

By Roha Gagan, Alibaba Cloud Community Blog author.

If you are planning to host a Node.js application or dynamic website on Alibaba Cloud, then an optimal and economical solution with high bandwidth, SSD and powerful CPU might interests you. Introducing Alibaba Cloud’s Starter Package Program, which provides SSD Cloud servers powered by 2nd Generation Intel Xeon Scalable Processors at highly affordable prices compared to other cloud providers. It allows you to access a powerful CPU at a much lower cost and supports both, Linux and Windows servers worldwide.

Alibaba Cloud’s Starter Package helps you get started instantly through simple, scalable, and cost-effective Elastic Compute Service (ECS) that caters to all your cloud hosting needs. The new SSD Cloud Server Packages provide easy-to-use, high-performance virtual machines with higher data transfer plans at hugely discounted rates for enabling you to start from as low as $2.50 a month. Since it is available across 14 global regions, you can easily choose the Datacenter Region for your servers to meet any specific requirements. It allows each user to have up to five ECS instances with the simultaneous Data Transfer Plans.

So, once you have reserved your SSD Cloud Server via Starter Package 2.0, you can go ahead and easily deploy a Node.js project on CentOS operating system by following the instructions below:

Prerequisites

To build your dynamic website by deploying a Node.js project on CentOS, you should meet the following requirements:

  • Alibaba Cloud account. In case you don’t already have one, set up an account before continuing
  • SSH like PuTTy or RDP client (optional) installed on your computer

 

Continue reading

Selamat Bu Khofifah, Gubernur Jatim 2019-2024

Ada rasa bangga melihat Presiden Joko Widodo (Jokowi) resmi melantik Khofifah Indar Parawansa-Emil Elestianto Dardak sebagai pasangan gubernur dan wakil gubernur Jawa Timur (Jatim) periode 2019-2024. Sebagai salah satu tim IT/Medsos/War Room di timses beliau,  ikut membantu kurang lebih 6 bulan memenangkan beliau dalam pilgub Jatim 2018.

Selamat Bu! Semoga amanah dan berkah untuk rakyat Jawa Timur.

https://news.detik.com/berita/d-4426544/jokowi-resmi-lantik-khofifah-jadi-gubernur-jawa-timur

 

System Big Data memverifikasi data DPS Pilgub Jatim 2018

Menjelang pilgub Jatim 2018, ada Data Daftar Pemilih Sementara dalam bentuk Excel. File ini saya olah dan analisa dengan memanfaatkan teknologi Big Data, untuk mengolah data besar calon pemilih. Penyusunan Daftar Pemilih merupakan salah satu tahapan yang terpenting dalam persiapan Penyelenggaraan Pemilu. Bagus juga ada input untuk memverifikasi dari data pemilih sementara. Sama-sama membantu untuk kebaikan bersama.

Hal ini dapat dilihat masih banyaknya pada DPT :
1.Data pemilih invalid
2.Data pemilih ganda
3.Manipulasi data pemilih
4.Data pemilih fiktif

Kita merubah proses pengecekan data yang melelahkan menggunakan Excel dan pengecekan manusia. Menjadi proses automatis menggunakan system Big Data :

Hasil temuan ini dapat menjadi masukan untuk perbaikan dalam pemutakhiran data pemilih tetap.

 

Proyek membantu tim medsos/IT Pilgub di Jawa Timur (Part 2)

Pada tulisan sebelumnya, saya diajak membantu menjadi bagian tim media oleh salah satu kandidat calon gubernur yang bertarung di PilguB Jatim 2018.

Setelah resmi ikut membantu menjadi bagian tim mereka.  Saya sudah mematangkan konsep dan strategi positif apa yang akan dipakai dan sudah disetujui pihak timsesnya. Saya membentuk tim yang membantu untuk standby bergantian mengelola tim medsos calon gubernur ini.

Dari riset saya, pemakai internet di Jawa Timur itu berkisar 10-15 juta orang :

Ini menjadi acuan target dalam pergerakan informasi di media sosial, khususunya menjangkau masyarakat Jawa timur pemakai internet yang didalamnya ada generasi milenial.

Beberapa strategi umum medsos yang bisa saya bagi di blog ini adalah :

-Masuk dalam tim media dan tim diseminasi cagub tersebut terhubung dengan tim lapangan yang ikut dalam setiap aktifitas cagub tersebut. Informasi yang didapat atau informasi penting bisa disebar di medsos atau di viral kan.
-Membuat/mengelola Akun baru resmi relawan/fans/sahabat di Facebook fan Pages, Instagram, Twitter, Youtube. Campaign promosi berbayar dan manual.
-Membuat/mengelola backlink website relawan.
-Menggunakan tool komersil seperti HootSuite for social media.
-Menggunakan Tool for strong Social Media Management untuk Analytics seperti fanpagekarma.
-Memonitor perkembangan media sosial paslon lain, dengan menggunakan software analytics dapat mengetahui perkembangan kampanye masing2 paslon.
-Counter attack untuk amplifikasi konten positif.
-Memonitor akun2 yang dijadikan black campaign, jika ditemukan di proses untuk di Take Down.
-Membuat database relawan, review Data Pemilih sementara(DPS)
-dsb.

Teknis detailnya tidak akan saya bahas disini, pekerjaan ini akan berlangsung sampai sebelum masa tenang dan pencoblosan pilkada pada 27 Juni 2018. Sebelum masa tenang menjadi penting dimana kordinasi dengan tim sukses akan lebih sering dalam menjalankan kampanye positif dan mencounter kampanye negatif.