<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Viki Pranata</title>
    <link>http://vikipranata.is-a.dev/posts/</link>
    <description>Recent content in Posts on Viki Pranata</description>
    <generator>Hugo -- 0.146.0</generator>
    <language>en</language>
    <lastBuildDate>Mon, 15 Dec 2025 00:00:00 +0700</lastBuildDate>
    <atom:link href="http://vikipranata.is-a.dev/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Running LLM OpenAI Open Source Model with vLLM and GPU NVIDIA L4</title>
      <link>http://vikipranata.is-a.dev/posts/vllm-gpt-oss-20b/</link>
      <pubDate>Mon, 15 Dec 2025 00:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/vllm-gpt-oss-20b/</guid>
      <description>Running LLM OpenAI Open Source Model with vLLM and GPU NVIDIA L4</description>
    </item>
    <item>
      <title>Kubernetes Cluster RKE2 with Cilium eBPF CNI</title>
      <link>http://vikipranata.is-a.dev/posts/rke2-with-cillium-cni/</link>
      <pubDate>Mon, 16 Jun 2025 00:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/rke2-with-cillium-cni/</guid>
      <description>Building Rancher Kubernetes Engine 2 without kube-proxy with Cilium eBPF CNI</description>
    </item>
    <item>
      <title>Lightweight Kubernetes Cluster with Multi Masters K3S and CRI-O</title>
      <link>http://vikipranata.is-a.dev/posts/k3s-multi-master/</link>
      <pubDate>Fri, 06 Jun 2025 00:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/k3s-multi-master/</guid>
      <description>Create lightweight container orchestrations with Kubernetes Rancher K3S and CRI-O for Container Runtime</description>
    </item>
    <item>
      <title>Build Docker Swarm Cluster with Rocky Linux 9.5</title>
      <link>http://vikipranata.is-a.dev/posts/setup-docker-swarm/</link>
      <pubDate>Thu, 05 Jun 2025 00:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/setup-docker-swarm/</guid>
      <description>Create container orchestrations with Docker Swarm</description>
    </item>
    <item>
      <title>High Availabililty VyOS Stream with Config Sync</title>
      <link>http://vikipranata.is-a.dev/posts/vyos-router-setup-ha/</link>
      <pubDate>Sat, 05 Apr 2025 00:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/vyos-router-setup-ha/</guid>
      <description>Installing and setup VyOS 1.5 Stream version with high availability and config sync</description>
    </item>
    <item>
      <title>Operating OpenStack via CLI</title>
      <link>http://vikipranata.is-a.dev/posts/openstack-operational-cli/</link>
      <pubDate>Sun, 16 Mar 2025 00:30:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/openstack-operational-cli/</guid>
      <description>Operating OpenStack via the command line, which can be used for preparing COA (Certified OpenStack Administrator)</description>
    </item>
    <item>
      <title>Openstack 2024.2 with Kolla Ansible</title>
      <link>http://vikipranata.is-a.dev/posts/openstack-kolla-ansible-2024.2/</link>
      <pubDate>Sun, 16 Mar 2025 00:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/openstack-kolla-ansible-2024.2/</guid>
      <description>Deployment Openstack Cloud with Kolla Ansible</description>
    </item>
    <item>
      <title>Ceph Reef Deployment</title>
      <link>http://vikipranata.is-a.dev/posts/ceph-reef-deployment/</link>
      <pubDate>Sat, 15 Mar 2025 00:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/ceph-reef-deployment/</guid>
      <description>Deployment Software Defined Storage with Ceph Reef</description>
    </item>
    <item>
      <title>High Availability with Keepalived</title>
      <link>http://vikipranata.is-a.dev/posts/high-availability-keepalived/</link>
      <pubDate>Wed, 04 Sep 2024 09:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/high-availability-keepalived/</guid>
      <description>&lt;h1 id=&#34;installing-packages-dependencies&#34;&gt;&lt;strong&gt;Installing Packages Dependencies&lt;/strong&gt;&lt;/h1&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dnf install -y keepalived
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;keepalived-configuration&#34;&gt;&lt;strong&gt;Keepalived Configuration&lt;/strong&gt;&lt;/h1&gt;
&lt;p&gt;Keepalived state reference&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MASTER-MASTER (if down, back to top priority)&lt;/li&gt;
&lt;li&gt;MASTER-BACKUP (if down, back to MASTER)&lt;/li&gt;
&lt;li&gt;BACKUP-BACKUP (if down, respect to node with MASTER state)&lt;/li&gt;
&lt;li&gt;Routers with priority 101 will become MASTER and Routers with priority 100 will become BACKUP.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configure-first-node&#34;&gt;Configure First Node&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt;EOF | tee /etc/keepalived/keepalived.conf
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;global_defs {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    router_id JumpServer
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    enable_script_security
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    vrrp_check_unicast_src
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;vrrp_track_process track_openvpn {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    process openvpn
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    weight 2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;vrrp_instance VIP {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    state MASTER
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    interface eth1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    virtual_router_id 69
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    priority 101
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    advert_int 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    nopreempt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    authentication {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;        auth_type PASS
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;        auth_pass Pa\$\$w0rd
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    unicast_src_ip 10.79.80.1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    unicast_peer {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;        10.79.80.2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    virtual_ipaddress {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;        103.150.80.130/28 dev eth0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;        10.79.80.254/24 dev eth1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    virtual_routes {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;        0.0.0.0/0 via 103.150.80.142 dev eth0 metric 100
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    static_routes {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;        0.0.0.0/0 via 10.79.80.251 dev eth1 metric 101
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    track_process {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;        track_openvpn
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Restart service and set to run while system boot&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux OpenVPN Server with Google Authenticators</title>
      <link>http://vikipranata.is-a.dev/posts/linux-openvpn-server/</link>
      <pubDate>Wed, 04 Sep 2024 09:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/linux-openvpn-server/</guid>
      <description>&lt;h2 id=&#34;installing-package-dependencies&#34;&gt;&lt;em&gt;Installing package dependencies&lt;/em&gt;&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dnf install -y epel-release
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dnf install -y openvpn openssl easy-rsa policycoreutils-python-utils 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;creating-and-setting-up-an-openvpn-server-certificates&#34;&gt;&lt;em&gt;Creating and Setting Up an OpenVPN Server Certificates&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Set of environment variable for easy_rsa&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt;EOF | tee vars
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;set_var EASYRSA_ALGO ec
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;set_var EASYRSA_CURVE prime256v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;set_var EASYRSA_CA_EXPIRE 3650
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;set_var EASYRSA_CERT_EXPIRE 3650
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;set_var EASYRSA_CRL_DAYS 3650
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then execute &lt;code&gt;./easyresa init-pki&lt;/code&gt;&lt;br&gt;
&lt;img alt=&#34;init-pki&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/linux-openvpn-server/uploads/init-pki.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;Create certificate authority (CA) and sever certificate.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SERVER_CN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;jumpserver
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SERVER_NAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;jumpserver
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./easyrsa --batch --req-cn&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$SERVER_CN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; build-ca nopass
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./easyrsa --batch build-server-full &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$SERVER_NAME&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; nopass
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./easyrsa gen-crl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt=&#34;create-ca-cert&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/linux-openvpn-server/uploads/create-ca-cert.webp&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Join Active Directory</title>
      <link>http://vikipranata.is-a.dev/posts/linux-join-ad/</link>
      <pubDate>Tue, 03 Sep 2024 09:20:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/linux-join-ad/</guid>
      <description>&lt;p&gt;After we &lt;a href=&#34;../setup-active-directory-server&#34;&gt;Setup Active Directory Server in Windows Server 2022&lt;/a&gt; now we can use this LDAP/AD User to login to server environments.&lt;/p&gt;
&lt;h2 id=&#34;join-active-directory-and-configure-to-login-with-user-ad&#34;&gt;Join Active Directory and Configure to Login with User AD&lt;/h2&gt;
&lt;p&gt;Installing packages&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dnf install -y realmd oddjob oddjob-mkhomedir sssd adcli samba-common-tools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Set dns server to AD server&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt;EOF | tee -a /etc/resolv.conf
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;search lab.homelab.is-a.dev
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;nameserver 10.79.80.3
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Discover to AD server&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;realm discover lab.homelab.is-a.dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt=&#34;realm-discover&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/linux-join-ad/uploads/realm-discover.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;Joining linux host to AD server&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setup Active Directory Server with Windows Server 2022</title>
      <link>http://vikipranata.is-a.dev/posts/setup-active-directory-server/</link>
      <pubDate>Tue, 03 Sep 2024 09:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/setup-active-directory-server/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This pages is work in progress&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;setup-active-directory-domain-services&#34;&gt;Setup Active Directory Domain Services&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;Step 1&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/1.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 2&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/2.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 3&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/3.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 4&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/4.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 5&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/5.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 6&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/6.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 7&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/7.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 8&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/8.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 9&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/9.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 10&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/10.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;Setup finish and server will be restart.&lt;/p&gt;
&lt;h2 id=&#34;create-organizational-unit-and-security-group&#34;&gt;Create Organizational Unit and Security Group&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;Step 11&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/11.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 12&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/12.webp&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;create-user-and-assign-to-security-group&#34;&gt;Create User and Assign to Security Group&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;Step 13&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/13.webp&#34;&gt; &lt;br&gt;
&lt;img alt=&#34;Step 14&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/14.webp&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;add-a-domain-controller-to-an-existing-domain&#34;&gt;Add a Domain Controller to an Existing Domain&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;Step 15&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/15.webp&#34;&gt;&lt;br&gt;
&lt;img alt=&#34;Step 16&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/16.webp&#34;&gt;&lt;br&gt;
&lt;img alt=&#34;Step 17&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/17.webp&#34;&gt;&lt;br&gt;
&lt;img alt=&#34;Step 18&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/18.webp&#34;&gt;&lt;br&gt;
&lt;img alt=&#34;Step 19&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/19.webp&#34;&gt;&lt;br&gt;
&lt;img alt=&#34;Step 20&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/setup-active-directory-server/uploads/20.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;Setup finish and server will be restart.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Networking Self Notes</title>
      <link>http://vikipranata.is-a.dev/posts/linux-networking/</link>
      <pubDate>Mon, 02 Sep 2024 09:10:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/linux-networking/</guid>
      <description>&lt;h2 id=&#34;configure-linux-nat-forwarding&#34;&gt;&lt;em&gt;Configure Linux NAT Forwarding&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Enable kernel parameter&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;net.ipv4.ip_forward = 1&amp;#39;&lt;/span&gt; &amp;gt; /etc/sysctl.d/99-forwarding.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sysctl --system
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Setup firewalld configuration&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nmcli connection migrate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nmcli connection modify eth0 connection.zone public
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nmcli device modify eth0 connection.zone public
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nmcli connection modify eth1 connection.zone internal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nmcli device modify eth1 connection.zone internal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;firewall-cmd --permanent --zone&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;public --add-masquerade
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;firewall-cmd --permanent --new-policy NAT-int-to-ext
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;firewall-cmd --permanent --policy NAT-int-to-ext --add-ingress-zone internal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;firewall-cmd --permanent --policy NAT-int-to-ext --add-egress-zone public
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;firewall-cmd --permanent --policy NAT-int-to-ext --set-target ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;firewall-cmd --reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Special case for Proxmox Virtual Environment&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Resize Disk</title>
      <link>http://vikipranata.is-a.dev/posts/linux-resize-disk/</link>
      <pubDate>Sun, 01 Sep 2024 09:00:00 +0700</pubDate>
      <guid>http://vikipranata.is-a.dev/posts/linux-resize-disk/</guid>
      <description>&lt;h2 id=&#34;expand-space-without-rebooting-vm&#34;&gt;&lt;em&gt;Expand Space without Rebooting VM&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Current usage disk with &lt;code&gt;lsblk&lt;/code&gt; command
&lt;img alt=&#34;disk-overview&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/linux-resize-disk/uploads/disk-overview.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;And here is LVM partition table&lt;br&gt;
&lt;img alt=&#34;lvm-overview&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/linux-resize-disk/uploads/lvm-overview.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;First step we need grow partition in &lt;code&gt;/dev/sda3&lt;/code&gt;, install package growpart first&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dnf install -y cloud-utils-growpart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then we resize partition with this command&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;growpart /dev/sda &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt=&#34;growpart-result&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/linux-resize-disk/uploads/growpart-result.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;See the different before and after, if you don&amp;rsquo;t use LVM partition scheme just execute &lt;code&gt;resize2fs /dev/sda3&lt;/code&gt; to full fill the partition.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pvresize /dev/sda3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pvs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vgs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt=&#34;pvresize-result&#34; loading=&#34;lazy&#34; src=&#34;http://vikipranata.is-a.dev/posts/linux-resize-disk/uploads/pvresize-result.webp&#34;&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
