ubuntu

basic configuration

basic configuration

screen

vim /etc/screenrc
hardstatus string "%h%? users: %u%?"
startup_message off
hardstatus alwayslastline "hetzner03: %-Lw%{= BW}%50>%n%f*   %t%{-}%+Lw%<"
bindkey -k k7 prev
bindkey -k k8 next
basic configuration

network

The following method allows to change the name of interfaces in ubuntu. The network card below some how is not good recogized by default, one interface is named renameX by default. With this method I assign it the name enp1s0 by configuration.

First I get all mac addesses of my interfaces

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: rename2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:07:43:0c:32:12 brd ff:ff:ff:ff:ff:ff
3: enp130s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:07:43:0c:32:13 brd ff:ff:ff:ff:ff:ff
    inet 10.7.10.70/24 brd 10.7.10.255 scope global dynamic enp130s0
       valid_lft 5639sec preferred_lft 5639sec
    inet6 fe80::207:43ff:fe0c:3213/64 scope link 
       valid_lft forever preferred_lft forever

Then I enable the feature in the grub configuration to set my own interface names.

vim /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

Apply the new configuration

grub-mkconfig -o /boot/grub/grub.cfg
update-grub
update-initramfs -u

Configure the new names per mac address

vim /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:07:43:0c:32:12", NAME="enp1s0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:07:43:0c:32:13", NAME="enp2s0"
basic configuration

nameserver

In my LAN I want to make use of the DNS of my OPNsense router, there for I change the setup of ubuntu to use if via the following configuration.

systemctl stop systemd-resolved 
systemctl disable systemd-resolved 
vim /etc/resolv.conf
search home 
nameserver 10.7.10.254
basic configuration

wipe hdd

wipefs -a /dev/sda
basic configuration

time synchronization

apt install ntp ntpdate -y
mv /etc/ntp.conf /etc/ntp.conf.orig
vim /etc/ntp.conf
server 10.8.10.254 prefer iburst
timedatectl set-ntp no
service ntp restart
ntpq -p
ntpdate 10.8.10.254

ansible

Install basic dependencies for ansible

apt update && apt upgrade -y && apt autoremove -y && reboot
apt update
apt install software-properties-common -y
apt-add-repository --yes --update ppa:ansible/ansible
apt install python-argcomplete
vim /etc/ansible/hosts

Add the following configuration to your /etc/asible/hosts file.

[master]
apu03.home

[k8s]
apu[03:06].home

[nodes]
apu[04:06].home

[k8s:vars]
ansible_python_interpreter=/usr/bin/python3

Add an ansible user

useradd -m ansible

With group ansible and sudo allowance

usermod -a -G sudo ansible

Switch to the user

su - ansible

Start bash

bash

Create an ssh key

ssh-keygen

Give the user ansible the bash shell as default

usermod --shell /bin/bash ansible

Allow to sudo without password from the ansible user

echo "ansible ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ansible
sudo chmod 0440 /etc/sudoers.d/ansible

Copy the public ssh key of the ansible user

vim .ssh/id_rsa.pub

Add it on all nodes as authorized key

mkdir .ssh
vim .ssh/authorized_keys

Find my first playbook on github