On 24th, I searched for uber cab as i had to head to VFS Global for my son’s passport renewal. While the app was doing search i came down on ground floor helped my son put shoes and put my shoes on. While i was slowly moving out the main door i took out my phone from pocket to see how the uber search is going on. With my full attention in phone screen i reached middle of pedestrian area still in front of my house door. While my eyes were still fixated on screen looking for taxi, i noticed someone walking towards direction I am standing. In that short time instead of me moving to make way I assumed the passer by will pass from front or back as there was plenty of space. But while passed he touched hard on my right arm with which I was holding phone. I turned my face to right now to look at him. I see he was looking at me and loudly said you could have moved aside from where you were standing. He walked towards me and said same line and loud voice shouted you don’t own the pedestrian walkway. He continued and did not gave me a chance to speak. While he was speaking rudely he threatened to kill me. Then he said “i will murder you” i found it surprising how he so easily came to murdering me. Then I managed to speak in louder tone that you do not own the pedestrians street area either. He again said he will murder me , if my son wasn’t stand behind me he would have already done it. At this point i did not feel right and wanted to end the argument so i moved to left side. While i saw him going on, he with his face facing backwards was still saying he will murder me. I wanted to call 999 but I was getting late for my son's passport appointment so I headed towards the Brent cross tube station to use train instead of going by taxi. My first taxi search was cancelled by uber when I tried second time it was costing £30 so I cancelled second search myself and continued with going by train.
0 Comments
{ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" }
then restart docker :
sudo systemctl restart docker sudo systemctl restart kubelet
Another useful command:
kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=interface=eth1
Then happily join cluster.
Thank you for stopping by, in this blog post I will show you how to set up a Multi-Site, Highly Available Cloud Storage using NextCloud over VPN and also accessible over the internet through HTTPS. I will also go over setting up a dynamic DNS, a DNS service at your home network, and a lot more. So let's get started. Well, by my career profile I might be a Pipeline TD, but over time, I have taught myself skills beyond visual effects pipeline into the verse of DevOps and Software infrastructure. I used weekends and holidays to set this up between my flat in London and my parent's home in Phillaur, India. Huge credits to my dentist brother who helped me put up the hardware together in India. Multi-site could have not been possible without a remote engineer.
What is Nextcloud?
Nextcloud is an open-source free to use cloud storage client-server software. It is a fork of owncloud (you can say the parent of owncloud from which nextcloud originated) which you can self-host at your premise on a micro server such as Raspberry Pi.
What Nextcloud is not!
Nextcloud is not backup software. If you plan to use nextcloud on a single node then you must plan backups of your precious data. In this post, I will also show you a single node and multi-node. The multi-site by default makes a backup of your entire data (without encryption of data).
Benefits and comparison
One of the real benefits of using nextcloud is that you can self-host it which your data stays at your premises. And in this post, I will be covering self-hosted multisite your own private cloud storage infrastructure and setup.
Who it is for?
Based on the fact that you can self-host at your premise, the greatest of all advantage is data protection and security still accessible from anywhere in the world using your VPN or over HTTPS. Unlike Dropbox, iCloud, or Google Drive, etc your data is stored on remote storage and is always under the risk of a hack.
What you need to setup self hosted nextcloud?Hardware
Software
Alright So let's get started. Put your favorite music on. This is going to take time. For me setting up and testing took months. But it's good as it is working seamlessly and now with this guide in hand it should fairly take less time for you. My original plan is shown below if you do not have more than 1 raspberry pi or any good single board computer you can just stick to a single node which you will also finish setting faster.
![]()
In London, I already had a Rock Pi 4b and Rockpro64 and later I bought rock pi x as it is an x86 single-board computer. In India, I have 2 raspberry pi, but I was not able to get the 2nd raspberry pi setup. So in my setup, I set up a cluster in London (Site A). As of now in India (Site B) I have a single node running everything on raspberry pi 3.
Prepare your first Node
After having tried so many times I have figured out the rightful way to reboot mariadb galera cluster.
First its important to ensure that all nodes of galera cluster are in sync. To verify that run the below mysql command on all the galera nodes. The Value must say sync. MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_local_state_comment'; +---------------------------+--------+ | Variable_name | Value | +---------------------------+--------+ | wsrep_local_state_comment | Synced | +---------------------------+--------+ 1 row in set (0.012 sec)
If anyone one of the node is not synced it will either be in ongoing sync process or on hold to accept. or if its erroring and you were not able to see whether wsrep_local_state_comment value is Synced. run the below command. The erroring file will look like this.
# cat /var/lib/mysql/grastate.dat # GALERA saved state version: 2.1 uuid: 00000000-0000-0000-0000-000000000000 seqno: -1 safe_to_bootstrap: 0
Check in other synced nodes where you have uuid and seqno
sudo cat /var/lib/mysql/grastate.dat # GALERA saved state version: 2.1 uuid: f5d6fbc2-31ab-11eb-8a0a-736512fe0cbd seqno: 11067 safe_to_bootstrap: 0
Copy this uuid from other running synced node and update this file in the erroed or un synced node after shutdown. Other galera nodes and you will get seqno after the shutdown to be something like 11607 or whatever non negative number.
sudo service mysql stop restarting the cluster
Now when all the nodes are down , update one of the node's grastate.dat file value of safe_to_bootstrap to 1 and while all the galera nodes are down and all graystate have a matching uuid and seqno on this node, start new cluster
sudo galera_new_cluster
Then on other galera cluster node. start the mysql/mariadb normally using
sudo service mysql start
Now Galera cluster will start. you can verify the result by running this command.
$ sudo mysql -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';" Enter password: +--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | wsrep_cluster_size | 3 | +--------------------+-------+
Thank you for reading this through. I will update the post with anything I missed or with new learning.
Defining your own domain name is simple enough using CoreDNS. At home I have 2 android phones with ubuntu installed, one of them running coredns as backup DNS server and nodeexporter. I have another vm and my macbook. on VM I have coredns running with the following zone files. that lets me access the phones and vm via domain name mapped to their IP address.
$ORIGIN tt.testing. @ 3600 IN SOA ns.tt.testing. root.tt.testing. ( 5 ; serial 604800 ; refresh 86400 ; retry 2419200 ; expire 36000 ; minimum ) ; Name Server Information _etcd-server-ssl._tcp.test1.tt.testing. IN SRV 10 10 2380 test1-etcd-0.tt.testing. test1-api IN A 192.168.0.23
and then in my CoreDNS config Corefile I access the zone like this:
cat Corefile (global) { log errors cache 86400 { prefetch 5 10m 10% } dnssec loadbalance prometheus :9153 } tt.testing:53 { log errors file zones/test1-api } .:53 { import global forward . 192.168.0.15:53 { health_check 10s except tt.testing } }
Where 192.168.0.15 is my dnsdist upstream DNS server listening on 53, In the forward section it forward all request to upsteam DNS server except for test1-api.tt.testing .
$ nslookup test1-api.tt.testing -port=8533 Server: 192.168.0.15 Address: 192.168.0.15#8533 Name: test1-api.tt.testing Address: 192.168.0.23
and in the shell I ran nslookup with coredns runing on port 8533, so I used -port=8533 to get result. now you can add this entry of DNS server to /etc/resov.conf or PiHole DNS server as 192.168.0.15#8533 to get result without having to pass -port=8533 but keep in mind then you are supposed to use that node ip address as dns server. rather than one having 8533 port address dns.
Hope that helps, it was fun and easy to setup... |
![]()
Custom Search
Other Blogs & PagesGit Commands Animation & VFX SitesA MUST READ for Ani/VFX Artistsawakened by thoughts,
|