install pihole at docker swarm with nfs share


I’m using portainer

This is my stack

version: "3.7"
services:
  pihole:
    image: pihole/pihole:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      - "80:80/tcp"
      - "443:443/tcp"
    environment:
      TZ: 'Asia/Jakarta'
      WEBPASSWORD: 'password'
    volumes:
      - 'pihole.vol:/etc/pihole/'
      - 'pihole.dns:/etc/dnsmasq.d/'

volumes:
  pihole.vol:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.0.13,nolock,soft,rw
      device: ":/media/fdisk/container/pihole2/pihole"
      
  pihole.dns:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.0.13,nolock,soft,rw
      device: ":/media/fdisk/container/pihole2/dnsmasq.d"

Don’t forget to mkdir pihole and dnsmasq.d in share directory

Install node-red in docker swarm with share data in nfs


I’m using portainer

Please read my note before this for setting nfs

This is my docker stack ‘

version: "3.7"

services:
  node-red:
    image: nodered/node-red:latest
    environment:
      - TZ=Asia/Jakarta
    ports:
      - "1880:1880"
    networks:
      - node-red-net
    volumes:
      - nodered.vol:/data
    user: root:root

volumes:
  nodered.vol:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.0.13,nolock,soft,rw
      device: ":/media/fdisk/nodered/"

networks:
  node-red-net:

If you have permission problem when you running your stack in nfs share maybe you can add user:root:root in your stack it works for me

Happy Coding

Salam Ngoprek

Share nfs volume docker swarm


//Docker stack

version: "3.7"
services:
  web:
    image: nginx
    volumes:
      - nginx.vol:/usr/share/nginx/html
    ports:
      - 80:80
    networks:
      - web

networks:
  web:
    driver: overlay
    name: web

volumes:
  nginx.vol:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.0.13,nolock,soft,rw
      device: ":/media/fdisk"


// nfs setting /etc/exports

/media/fdisk *(rw,insecure,sync,no_subtree_check,no_root_squash)


I had problem with nfs share if i use vfat partition, and i change to ext4 for partition usb fdisk and now all volumen working properly (dont forget to change media share to 777 if you have problem to read and write)

Source :

https://pimylifeup.com/raspberry-pi-nfs/

https://sysadmins.co.za/docker-swarm-persistent-storage-with-nfs/

https://linuxize.com/post/how-to-mount-an-nfs-share-in-linux/

https://serverfault.com/questions/212178/chown-on-a-mounted-nfs-partition-gives-operation-not-permitted

Membuat Raspberry Pi Cluster part 3 (manage docker swarm menggunakan portainer )


Ok lanjutan dari tulisan saya sebelumnya membuat raspberry pi cluster series, kali ini saya akan membahas penggunaan portainer untuk memanage docker swarm kita.

Apa itu portainer? kalau menurut keterangan di webnya portainer adalah sebuah tools yang digunakan untuk memanage docker dengan cepat dan mudah.

Dan yang serunya adalah aplikasi nya gratis bisa digunakan dengan bebas buat main main cukuplah kan ya :D. Dan portainer sendiri juga menawarkan versi berbayar dan tentu saja dengan support yang berbeda dengan versi gratisnya.

Ok cara mudah install portainer di docker kita cukup ketikkan perintah ini di master cluster kita

curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml 

docker stack deploy --compose-file=portainer-agent-stack.yml portainer 

lengkapnya bisa baca disini , tunggu beberapa saat untuk melihat service nya sudah jalan apa belum ketikkan perintah ini

docker service ls

Kalau sudah running semua tinggal buka browser masuk ke ip master

http:<ip master>:9000

masukkan user dan password dan selesai

Continue reading “Membuat Raspberry Pi Cluster part 3 (manage docker swarm menggunakan portainer )”

Membuat Raspberry Pi Cluster part 2 (install docker swarm)


Melanjutkan tulisan sebelumnya disini selanjutnya saya akan membahas gimana caranya install docker swarm, caranya gampang sebenernya cuman tinggal install docker 🙂 caranya liat disini

Setelah install docker selesai langkah selanjutnya adalah tinggal menggabungkan raspbery ini secara software, ada beberapa tips sebenarnya supaya gampang kedepannya untuk memanage si raspberry pi yaitu dengan cara set static ip dan ngga lucu juga sewaktu waktu apabila ipnya berubah maka clusternya bisa kacau :D. Cara gampang bisa lewat router dengan assign ip static di dhcp server router dengan mendaftarkan mac address nya kemudian diberikan ip static, atau cara kedua dengan menset ip lokal di raspberry pi seperti cara ini

sudo nano /etc/dhcpcd.conf 

interface eth0
static ip_address=192.168.0.4/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

begitu selesai simpan file ctrl + x (Y)

Begitu selesai ada tips lagi yang lain tapi optional yaitu copykan id rsa public di kesemua master dan nodenya, oh iya master itu adalah docker utama yang mengatur node (raspberry pi worker)

Langkah selanjutnya setelah selesai adalah masuk kebagian pentingnya yaitu menggabungkan caranya gampang tinggal seperti ini

docker swarm init (di master)

setelah itu akan muncul seperti dibawah ini 

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-496mv9itb7584pzcddzj4zvzzfltgud8k75rvujopw15n3ehzu-af445b08359golnzhncbdj9o3 \
    192.168.0.79:2377

docker node ls

simpan kode diatas, kode tersebut akan kita akan gunakan ketika ingin menggabungkan node kita ke master, sampai disin node master kita sudah selesai, untuk mengetes berhasil apa tidak tinggal

docker node ls

kalau sukses maka akan muncul nama master kita disana dan kode tersebut juga akan menampilkan node yang terhubung ke master

Setelah master selesai masuk ke node yang akan kita joinkan melalui ssh

pastikan docker sudah terintall di node dan jalan dengan baik kemudian ketikkan kode ini di node

docker swarm join \
    --token SWMTKN-1-496mv9itb7584pzcddzj4zvzzfltgud8k75rvujopw15n3ehzu-af445b08359golnzhncbdj9o3 \
    192.168.0.79:2377

ini adalah kode yang tadi kita simpan pada saat kita membuat docker master, cara untuk tau master kita sudah terhubung apa belum masuk ke master ketikkan

docker node ls

Nanti kalau sukses join akan muncul disana, ulangi langkah tersebut ke semua node kita dan selesai cara menggabungkan raspberry pi cluster kita menggunakan docker swarm.

Selanjutnya saya kan share cara manage docker swarm dengan mudah

Happy Coding

Salam ngoprek