wordpress hosting - vpn - cloud - statistiekservice - email

Redhat praat over Ansible

Ansible

AnsibleWat is Ansible

Ansible is een automation tool, een tool dus waarmee je je beheer van je (cloud)servers maar ook fysieke servers op zowel Windows als Linux kan beheren en bijv. applicaties kan installeren. Het werkt zonder agent, dat doet bijv. een andere automation tool zoals Puppet wel. Ansible werkt in principe door het opzetten van een SSH verbinding, voert uit wat het uit moet voeren en verbreekt de verbinding weer. Ansible is OpenSource. 

Toepassingen

Ansible kent vele toepassingen, zo kan je er dus bestaande servers in een eigen datacenter en/of in de cloud mee beheren maar ook kan Ansible gebruikt worden om netwerkapparatuur mee te configureren of bepaalde policies gepushed worden. Denk bijv. aan een ACL waarmee toegang geregeld wordt vanaf een beheersLAN. 

Playbook

Alles in Anslble draait om zgn. playbooks. Stukken Ansible code waarmee bepaalde zaken worden geregeld. Tijdens de RedHat meeting in Bussum van 14-03-2018 werd uitgelegd hoe belangrijk naamgeving kan zijn. Gebruik bijv. niet "installatie server" maar "Installatie en starten Apache webserver". Als er dan iets mis gaat weet je tenminste in welk playbook het mis gaat en waar. Klinkt simpel maar het zijn vaak dit soort kleine dingen die je in je enthousiasme over het hoofd ziet. Dat je niet zelf het wiel hoeft uit te vinden, klinkt ook nogal logisch en met een git repo (galaxy) van zo'n 15.000 vrij beschikbare playbooks en modules hoeft dat ook niet. Even een bestaand voorbeeld aanpassen is een stuk makkelijker en sneller dan zelf allerlei code en modules bij elkaar rapen. 

Een voorbeeldje van een task binnen een playbook:

--

# This task installs and enables apache on webservers
- name: ensure apache is installed
yum: pkg=httpd state=latest
- name: ensure apache is running
service: name=httpd state=running enabled=yes
- name: copy files to document root
copy: src=cloud.png dest=/var/www/html/cloud.png
- name: copy application code to document root
template: src=index.html.j2 dest=/var/www/html/index.html
notify: restart apache

 

Security

Het begint ein-de-lijk ook bij het bedrijfsleven en overheid door te dringen dat security (app, server, netwerk enz.) niet meer het ondergeschoven kindje kan zijn maar volle aandacht verdiend. Zo kan Ansible worden ingezet om periodiek root-wachtwoorden te wijzigen, security policies te implementeren en als zo'n policy in bijv. in een test omgevinging werkt dan kan dat gemakkelijk naar productie worden doorgezet. 

 

 

 

Wat is er nieuw in Redhat 7 [update-2]

Netwerk

Nieuw is nmcli en nmtui command waarmee je nu je netwerkconfiguratie regelt. 

Een paar voorbeelden:

  • nmcli con show : toont de connectie status van de netwerkinterfaces
  • nmcli con show <device> : toont gedetailleerde info van <device>
  • nmcli con add con-nam <name> ifname <device> autoconnect <on | off>  type ethernet ip4 192.168.1.10/24 gw 192.168.1.254 : Dit brengt maakt voor <name> een configuratiebestand aan voor <device> waarbij het type v/d interface ethernet is, er gekozen kan worden op deze tijdens het opstarten autoconnected is (moet worden geactiveeerd) en de bijbhorende ipv4 configuratie.
  • nmcli con mod <name> + ipv4.dns 8.8.8.8 : voegt aan de bestaande configuratie <name> een ipv4 dns met adres 8.8.8.8 toe. 
  • nmcli con up <name> : brengt interface met de naam <name> up 
  • hostname-ctl status : geeft overzicht van de hostname configuratie
  • hostname-ctl set-hostname <fqdn> : set de hostname (fqdn) in 

Overigens wordt de configuratie van de netwerk interface wel gewoon in /etc/sysconfig/network-scripts opgeslagen.

Logging

Hoewel logging 'gewoon' via rsyslog kan lopen en het nieuwe journald geen 1 op 1 vervanging is wordt bijv. bij een minimale installatie rsyslog niet standaard geinstalleerd en zal je met journalctl aan de gang moeten. De logging met journald is gaat verloren na een reboot en wordt weggeschreven in /run/log/journal.

journald logging permanent maken

  • Maak een directory /var/log/journal aan: mkdir /var/log/journal
  • Zet de rechten goed : chown root:systemd-journal /var/log/journal en geef daarna chmod 2755 /var/log/journal
  • Zorg ervoor dat journald de nieuwe directory ziet : killall -USR1 systemd-journald

Het uitlezen v/d logging gaat dan middels journalctl -b

journald voorbeelden

  • journalctl -f : toont de laatste regels van het log en vult aan als er nieuwe items bijkomen (vergelijkbaar met een tail -f)
  • journalctl -nxx : toont de laatste xx regels
  • journnactl –since yesterday -p err : toont vanaf gisteren alleen de error logregels
  • journalctl _SYSTEMD_UNIT=sshd.service : toont alleen de sshd gerelateerde logregels
  • journalct -o verbose : geeft extra veel info over de logregels

Wachtwoord van root kwijt / verloren

In RedHat 7 kan je het root wachtwoord op de volgende manier wijzigen als je het vergeten / kwijt bent: 

  • reboot de server
  • in het bootmenu druk op e (edit) en voeg aan de regel die begint met linux16 aan het einde toe: rd.break
  • boot de server daarna verder vanuit het bootmenu met Ctrl-X
  • op de prompt geef mount -orw,remount /sysroot 
  • geef chroot /sysroot
  • wijzig het root wachtwoord met passwd root
  • indien SELINUX enforced is geef load_policy -i en daarna touch /.autorelabel
  • reboot de server

 

 

Tips installatie Oracle

Er zijn al veel pagina's geschreven over hoe je Oracle 12 op 'n RedHat 6 server moet / kan installeren. Hier staan dan ook mijn bevindingen en tips als je Oracle 12 op een RedHat 6 of soort gelijke server wilt installaren

Vooraf

  • maak de swappartitie minimaal 16GB anders wil de installer niet werken
  • zorg ervoor dat als je niet fysiek achter de server zit je een client hebt met een X server. Voor Windows zou dat bijv. Mobaterm kunnen zijn. 
  • zorg dat de FQDN (volledige host en domainnaam) in de /etc/hosts staat met het publieke ipadres
  • Zorg dat je een recente Java versie installeert. Indien je op een RedHat 6 server werkt dien je de rhel-6-server-thirdparty-oracle-java-rpms  repo in /etc/yum.repos.d/redhat.repo te enablen (enable=1)
  • Indien je een firewall op de server gebruikt, voeg in /etc/sysconfig/iptables een regel toe: 
	-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
  • Maak vooraf groupen en gebruikers aan. Check wel even of de hier getoond GID's vrij zijn:

    groupadd --gid 54321 oinstall
    groupadd --gid 54322 dba
    groupadd --gid 54323 asmdba
    groupadd --gid 54324 asmoper
    groupadd --gid 54325 asmadmin
    groupadd --gid 54326 oper
    groupadd --gid 54327 backupdba
    groupadd --gid 54328 dgdba
    groupadd --gid 54329 kmdba

    useradd --uid 54321 --gid oinstall --groups dba,oper,asmdba,asmoper,backupdba,dgdba,kmdba oracle
    passwd oracle

    useradd --uid 54322 --gid oinstall --groups dba,asmadmin,asmdba,asmoper grid
    passwd grid
  • Zet aangepaste limits voor de user oracle in een aan de aan te maken /etc/security/limits.d/99-grid-oracle-limits.conf:

    oracle soft nproc 16384 
    oracle hard nproc 16384 
    oracle soft nofile 1024 
    oracle hard nofile 65536 
    oracle soft stack 10240 
    oracle hard stack 32768 
    grid soft nproc 16384 
    grid hard nproc 16384 
    grid soft nofile 1024 
    grid hard nofile 65536 
    grid soft stack 10240 
    grid hard stack 32768

Het opnoemen van allerlei rpm's die nodig zijn is niet meer nodig. De Oracle Installer komt zelf met welke er nog moeten worden geinstalleerd. Die kunnen dan alsnog worden geinstalleerd, doe een re-check en als aan alle software dependencies is voldaan gaat de Oracle Installer verder. De installer geeft ook aan welke kernel parameters gezet moeten worden, die worden in een script geplaatst wat als root moet worden uitgevoerd. Ook dit geeft de installer aan.

De installatie van het RDBMS

De installer komt met een aantal vragen zoals een emailadres waarop Oracle support je kan emailen voor updates ed, wachtwoord voor Oracle support (uit te vinken zodat je door kan gaan met de installatie) en vraagt naar de soort installatie bijv. Install database only of Single instance database. 

In dit voorbeeld gebruiken we de volgende paden:


    ORACLE_BASE = /apps/oracle
    ORACLE_HOME = /apps/oracle/product/12.1.0/dbhome_1

 

Zorg dat deze directories bestaan en zet de rechten goed: chown -r oracle.oinstall /apps/oracle

Pak de Oracle .zip files uit ergens waar voldoende ruimte is, bijv. /apps/oracle/oracle-software/ en zet de rechten goed op die directorie: chown oracle.oinstall /apps/oracle/oracle-software/*.zip

Login met ssh -Y oracle@<server> en ga naar /apps/oracle/oracle-software/ en pak de beide zipifiles uit.

Start (nog steeds als user Oracle) de installer: /apps/oracle/oracle-software/database/runInstaller

De installer start op en bij een remote X sessie zal er nog een warning komen dat de installer niet kan detecteren of je scherm aan de juiste eisen voldoet maar je kan gewoon verder met de installatie door deze waarschuwing te negeren. 

Oracle client

De Oracle client kan direct bij Oracle worden gedownload als RPM. Je hebt hiervoor wel een account nodig maar dat kan (gelukkig) gratis worden aangemaakt. Na het downloaden is de client eenvoudig te installeren met: 

    rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

Proxy server instellen op RedHat/CentOS servers

RedHat Subscription Manager

Indien je de RedHat Subcription Manager wilt gebruiken met een proxy server kan dat worden gedaan door in /etc/rhsm/rhsm.conf de volgende regels op te nemen:

    proxy_hostname = proxy.mynnet.nl
    proxy_port = 8080
    proxy_user = proxyuser
    proxy_password = proxypass

Indien geen user/password nodig is komt er achter het "=" teken niets te staan. 

 

YUM

Voeg aan /etc/yum.conf een regel toe als volgt: 

 

    proxy = proxy.mynnet.nl:8080 

 

System wide

    /bin/cat <<EOF > /etc/profile.d/proxy.sh 
    export http_proxy=http://proxy.mynnet.nl:8080 
    export ftp_proxy=http://proxy.mynnet.nl:8080
    export HTTP_PROXY=http://proxy.mynnet.nl:8080
    export FTP_PROXY=http://proxy.mynnet.nl:8080 
    export no_proxy=.localdomain.com  
    EOF