Sonntag, 15. Juli 2018

Resize a logical volume with Ansible with checks before

Situation:
My challenge is to check my nodes if the root directory has enough space and if not check if the volume group has also enough space to resize the logical volume.

Here is my Ansible code. I'm sure it's not perfect, but it works :-)

# Check nodes before Upgrade Cluster
---
- hosts: all
  become: True
  tasks:

    - name: Test disk space available
      assert:
        that:
         - item.mount != '/' or {{ item.mount == '/' and \
                   item.size_available > (item.size_total) }}
      with_items: '{{ ansible_mounts }}'
      ignore_errors: yes
      register: disk_free

    - name: Check VG for enough space
      assert:
        that:
          - item.key != '{{ VG }}' or {{ item.key == '{{ VG }}' \
                   and item.value.free_g > 1.00 }}
      with_dict: '{{ ansible_lvm.vgs }}'
      register: vg_free
      ignore_errors: yes
      when: disk_free is failed

    - name: resize lvROOT
      shell: lvresize -L +1G /dev/VG/lv && xfs_growfs /

      when: vg_free is succeeded

Freitag, 13. Juli 2018

Ansible unter Ubuntu 16.04

Installation Ansible:


$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
$ ansible --version
   ansible 2.6.1
Um mit Ansible arbeiten zu können, die Hosts in die /etc/ansible/hosts eintragen, die angesprochen werden soll
Danach muss der ssh key des Ansible-Hosts auf die Ziel-Hosts kopiert werden
$ ssh-keygen
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@zielsystem
Ich habe den ssh key meines normalen Users kopiert, und nicht den von root
Erster Test:
$ ansible all -m setup 
Im weiteren Verlauf:
Der Zugriff per Root wird doch benötigt... daher den Public Key doch noch rüber kopieren

Bug beim Auslesen der LVM Größen über setup
https://github.com/ansible/ansible/issues/33617