CyberGhost in Fedora

Currently the installation script for Cyber Ghost VPN client does not support Fedora 32. Since the cyberghostvpn client works on Fedora 32 just fine, let see how we can make the installation to work.

How to do it

Go to Cyber Ghost web page and download the installation package for Fedora 31. Unpack the Zip file. Open the install.sh script. Go to the line number 63 and paste the code snippet right after the elif condition which is checking if you are running Fedora 31. With this new elif condition you will tell the script that it is totally OK to have Fedora 32 and glibc v2.31 :-).

        elif [ "$distroVersion" == "32" ]; then

                if [ "$glibcVersion" == "2.31" ]; then

                        echo "The glibc version is compatible, continue..."

                else

                        echo "The glibc version is incompatible, exiting setup..."
                        exit

                fi

Then run the install script:

╭─mono@ntb ~
╰─➤  sudo ./install.sh

Load the wireguard kernel modul and make sure it will be loaded also after the reboot:

╭─mono@ntb ~
╰─➤   sudo modprobe wireguard

╭─mono@ntb ~
╰─➤  echo "wireguard" | sudo tee /etc/modprobe.d/cyberghost.conf

If you updated also the kernel, reboot your machine.
After that you can test your VPN connection:

╭─mono@ntb ~
╰─➤  sudo cyberghostvpn --country-code us --city atlanta --connect
Prepare OpenVPN connection ...
Select server ... atlanta-s408-i20
Connecting ...
VPN connection established.

╭─mono@ntb ~  
╰─➤  sudo cyberghostvpn --status
VPN connections found.
Environmant Variable

set -gx KUBECONFIG ~/.kube/my-cluster

Remove Env variable

set -e KUBECONFIG

Serial tasks

Remove a finalizer which got stuck.

kubectl get ns <namespace name> -ojson | jq '.spec.finalizers = []' | kubectl replace --raw "/api/v1/namespaces/<namespace name>/finalize" -f -

Forward from localhost to the outside world
sudo socat -d -d TCP-L:8500,bind=<node IP address>,fork TCP:localhost:8500
Fedora Upgrade
  1. First run this command and reboot your computer:

    sudo dnf upgrade --refresh
    
  2. Install the dnf-plugin-system-upgrade package if it is not currently installed:

    sudo dnf install dnf-plugin-system-upgrade
    
  3. Download the updated packages:

    sudo dnf system-upgrade download --refresh --releasever=<your destination version>
    
  4. If some of your packages have unsatisfied dependencies, the upgrade will refuse to continue until you run it again with an extra --allowerasing option.

  5. Run the upgrade process:

    sudo dnf system-upgrade reboot
    
Gnome Icon example
cat ~/.local/share/applications/spotify.desktop

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Spotify
Comment=Spotify
Icon=/home/mike/.local/share/applications/spotify.png
Exec=/var/lib/snapd/snap/bin/spotify
Terminal=false
Categories=Tags;Describing;Application
Search and delete directories
find . -type d -name "<directory name>" -exec rm -rf {} +
Serial tasks

Ansible does not have a out-of-the-box feature which could make possible to run block of tasks in a serial way (the same as you can do with tasks in a playbooks). To owercome this disadvantage you can include the file with serial tasks like this:


- name: Run tasks per node in serial mode
  ansible.builtin.include_tasks: serial_pipe.yml
  with_items: "{{ groups.all }}"
  loop_control:
    loop_var: _host_item
  when: hostvars[_host_item].inventory_hostname == inventory_hostname