Configure and Mount Hetzner Storage box on Linux using Ansible

Hetzner storage box provides various access protocols such as SCP, FTP, SFTP, and RSYNC for easy and secure access to the Storage Box for files uploads and downloading. You also have an option of integrating the Storage Box into your own file system via Webdav or Samba.

The storage box has the snapshots feature where you can take a snapshot of your Storage Box and restore when necessary. This ensures good data reliability and availability. Storage snapshots can be created manually or have them generated automatically based on your own personal configurations. Storage box capacity can be increased anytime from the web console to fit production data demands.

In this article we’ll see how to configure Hetzner Storage box and mount it on a Linux server. We’ll perform mounting on both Red hat based and Debian based systems. All Linux server configurations will be done via Ansible automation. The Ansible role that is used in this guide is available in galaxy.

Step 1: Order storage box server

The first step is making an order of Hetzner cloud storage box with the capacity that suit your business needs. Head over to hetzner robot order section.

Select storage capacity option.

Choose the location where your storage box server will be located

Confirm pricing and proceed to checkout.

Accept order obligation to complete the order

Once approved and provisioned it will be available under “Storage box” section.

Step 2: Enable Storage access options & reset access password

Enable supported methods that you’ll use to access your storage box. In this guide we’ll perform Samba share mount on a Linux server so Samba support must be enabled. I would also love to access storage using SCP and RSYNC, hence reason for enabling SSH support.

Take note of your storage box access details, namely:

  • User name
  • Samba Share

Lastly reset the user password used to access the storage box and to mount.

Step 3: Download Ansible role from galaxy

As stated earlier the role used in this guide is available in Ansible galaxy. Download the role to your local system:

$ ansible-galaxy install jmutai.hetzner_storage_box_role

Confirm the role is available locally. Default user roles path is ~/.ansible/roles

$ ls ~/.ansible/roles
jmutai.hetzner_storage_box_role

Create hosts inventory file

$ vim hosts
[servers]
188.30.226.18

Create playbook file:

vim hetzner_storage_box.yaml

Paste and modify the values accordingly in the file:

---
- name: Include Hetzner storage setup role
  hosts: servers #Server group / IP Address / Server hostname in hosts inventory
  roles:
  - jmutai.hetzner_storage_box_role
  vars:
    storage_box_username: <username>         #Storage box share username
    storage_box_password: <password>         #Storage box share user password
    hetzner_storage_box_fstab:
    - mountpoint: /mnt            #Where samba share is mounted in the server
      mount_system_user: root     #User in the server to mount
      mount_system_group: root    #Server user group managing mount

Ensure hosts, username, password values are set correctly.

Once done run the playbook to install required dependencies and configure fstab file.

$ ansible-playbook hetzner_storage_box.yaml -i hosts --user=centos --become --become-method=sudo

PLAY [188.30.226.18] ***********************************************************************************************************************************************

TASK [Gathering Facts] *******************************************************************************************************************************************
Enter passphrase for key '/Users/jkmutai/.ssh/id_rsa':
ok: [188.30.226.18]

TASK [Include Hetzner storage setup role] ************************************************************************************************************************

TASK [hetzner_storage : Include OS Specific variables] ***********************************************************************************************************
ok: [188.30.226.18] => (item=/Users/jkmutai/myhacks/ansible/roles/hetzner_storage/vars/RedHat.yml)

TASK [hetzner_storage : Install samba related packages] **********************************************************************************************************
changed: [188.30.226.18] => (item=samba-client)
ok: [188.30.226.18] => (item=samba-common)
changed: [188.30.226.18] => (item=cifs-utils)
ok: [188.30.226.18] => (item=rsync)
ok: [188.30.226.18] => (item=openssh-clients)

TASK [hetzner_storage : Copy credentials file] *******************************************************************************************************************
changed: [188.30.226.18]

TASK [hetzner_storage : Mount up hetzner samba share] ************************************************************************************************************
changed: [188.30.226.18] => (item={'mountpoint': '/mnt', 'mount_system_user': 'root', 'mount_system_group': 'root'})

PLAY RECAP *******************************************************************************************************************************************************
188.30.226.18               : ok=5    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Initiate a new ssh session to the server and confirm new configurations added to the /etc/fstab file:

$ ssh [email protected]

Mount Samba share from fstab config:

sudo mount /mnt

Check storage total capacity and usage:

$ df -hT /mnt/
Filesystem                          Type  Size  Used Avail Use% Mounted on
//u269487.your-storagebox.de/backup cifs  500G  4.9G  496G   1% /mnt

You can create directories in the share and upload files:

sudo mkdir /mnt/techviewleo
sudo touch /mnt/techviewleo/test{1..5}.txt

$ sudo ls /mnt/techviewleo
test1.txt  test2.txt  test3.txt  test4.txt  test5.txt

$ sudo rm -rf /mnt/daylifetips/test{1..5}.txt

This is the end of our tutorial on how to configure Hetzner storage box and access the Samba share on a Linux system. In our future guides we’ll cover access to the storage via SCP, Rsync and WebDAV. Stay tuned!.

More guides on our website:

Your IT Journey Starts Here!

Ready to level up your IT skills? Our new eLearning platform is coming soon to help you master the latest technologies.

Be the first to know when we launch! Join our waitlist now.

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Leave a Comment

Your email address will not be published. Required fields are marked *


The reCAPTCHA verification period has expired. Please reload the page.

Related Post

Welcome to our today’s article, the intention of this article is to help you understand the installation and configuration of […]

Welcome to our tutorial on installing and using Metasploit Framework on Arch | Manjaro | Garuda Linux systems. The MSF […]

Arduino boards are making immense waves in the digital production world as they are used heavily in creation of digital […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.