2018-10-17

Figlet

När man arbetar med ett större antal servrar och sitter och loggar in via SSH så kan man i ett stressat läge inte alltid uppfatta vilken server man loggat in på. Det har hänt mig en och annan gång och efter att en av lyssnarna till min och Fredrik Björemans podcast berättade att han med hjälp av en text-till-ascii-konvertering alltid la in servernamnet i filen /etc/motd, som står för message of the day, vilket traditionellt varit ett enkelt sätt för en systemadministratör att meddela andra användare i ett Unix-baserat system om exempelvis kommande uppdateringar eller andra nyheter som de behöver veta.

/etc/motd är helt textbaserad så man kan i praktiken skicka in vilken information man vill i den texten. I mitt fall vill jag automatisera detta, exempelvis via Ansible och ett script jag kör på nyinstallerade CentOS-servrar som gör en rad saker (sätter mitt lokala repo som det som servern laddar ner paket och uppdateringar från, ställer in min syslog-server, med mera). Via ett program kallat Figlet, som finns i CentOS 7-repot, kan man generera “ascii-logotyper” från vanlig text. I mitt fall vill jag ta hostnamnet på servern men inte dess domännamn och skicka in i /etc/motd genom ett script. Följande enkla kommando löser detta:

figlet ${HOSTNAME%%.*} > /etc/motd

Detta kan givetvis också scriptas så kommandot körs via SSH eller via en kickstart-server om så önskas.

Avslutningsvis: Figlet kan en hel del andra massa roliga saker som jag rekommenderar alla att titta närmare på.

2018-10-03

Du kan aldrig lita på Facebook

Om du är medlem på Facebook, vilket jag inte varit sedan i maj i år av anledningar som snart ska bli uppenbara, så får du säkert mail då och då med information om att någon som du är “vän” med postat en ny bild eller att någon aktivitet. En person i min familj har bett mig att hålla koll på vad denne får via sin e-post emellanåt. Personen är inte särskilt datorvan och blir då och då utsatt för olika former av försök till bedrägerier, så när jag såg via ett notiferingsmail att personen i fråga blivit taggad i en bild så reagerade jag, mycket beroende på att jag vet att personen i min närhet inte känner personen som satt taggen.

Jag blockerar alla såna typer av mail till personen i min närhet i mitt spamfilter så jag kan gå in och titta på innehållet i mailet. Innehållet i mailet är givetvis sminkat med diverse HTML men kikar man på koden till det så innehåller det ett antal HTML-länkar till Facebook, den ena går direkt till postningen där bilden finns och den andra går till en inloggning hos Facebook. Inga konstigheter, eller hur?

Problemet är bara att om man klickar på länken för att titta på bilden så loggas man in på personens konto, utan att behöva ange varesig inloggningsnamn, e-postadress eller lösenord. Jag har verifierat detta dels på en dator som jag använt i flera år men också på en dator som jag installerade häromdagen, där personen i min närhet aldrig har haft en möjlighet att logga in. Eftersom min gamla dator kör macOS och min nyinstallerade dator kör Linux finns ingen som helst lösenordssynkronisering mellan de två så det finns ingen som helst möjlighet att jag har kommit in via ett lösenord som lagrats någonstans.

Väl inloggad på personens Facebook-konto kan jag sedan klicka runt, läsa meddelanden (både privata och publika), skicka privata meddelanden och och titta på inställningar. Kan man ändra personens lösenord hos Facebook? Jag har inte testat, och jag tänker inte göra det heller - att komma in på det här sättet är allvarligt nog. Jag har med en annan familjemedlems välsignelse testat samma sak med samma typ av e-postnotifieringar som denne också fått från Facebook och det fungerar även med den personens konto.

Är du det minsta rädd om din personliga säkerhet och envisas med att fortsätta använda Facebook är det min kraftfullaste rekommendation att du slår av alla former av e-postnotifieringar för ditt Facebook-konto. Det är inte svårt att hacka sig in i någons e-post och via den vägen komma åt den här typen av meddelanden.

Det värsta av allt? Facebook har varnades om detta redan för två år sedan.

Jag har givetvis ändå varit en duktig nätanvändare och rapporterat detta till Facebooks säkerhetsteam men har inte fått någon som helst respons varför jag anser att det är fritt fram att publicera detta.


2018-09-30

Äppleallergi

Så hände det då till slut.

Bilden ovan visar mitt hemmakontor (eller en del av det åtminstone). Till vänster i bild, bredvid en bunt Amiga-datorer som inte syns i bild, är min 15-tums Macbook Pro från 2015. Den bästa laptop som någonsin gjorts, och med största sannolikhet den bästa dator jag någonsin ägt. Fram tills i år har den, och alla mina tidigare Mac-datorer (de har varit många genom åren) kört det i mitt tycke bästa operativsystemet på planeten: Mac OS X, senare macOS. I år hände dock något som inte ens jag kunnat förutse, även om jag liksom nosat på det genom åren.

Jag dumpade min Mac.

Nästan.

Givetvis finns min Mac kvar. Jag behöver den för att spela in podcasts, redigera någon bild ibland eller mecka med andra saker där jag inte kan eller vill använda ersättaren till min Mac som min primära datorplattform.

Men jag går händelserna i förväg.

Runt år 2001 upptäckte jag ett operativsystem som hette Mac OS X. Jag hade skaffat mig en PowerBook G3 och installerat den första version jag fick tag i, version 10.1 tror jag det var. Även om datorn i fråga inte alls gjorde mig överdrivet glad, förutom att den var snygg att titta på, så var operativsystemet dynamit. Det var en befrielse för mig som hoppat runt mellan OS/2, OPENSTEP och BeOS innan jag till slut fann plattformen som skulle förändra mitt liv. Jag har Mac OS X och Apple att tacka för delar av min karriär och på många sätt också mitt mentala välbefinnande - att tvingas köra Windows i nästan 20 år hade nog knäckt mig fullständigt.

När Apple släppte version 10.6 av Mac OS X så kallades den “Snow Leopard”. Det var på något sätt den ultimata versionen av Mac OS X från den tiden, version som främst innehöll buggfixar snarare än nya, flashiga funktioner gjorde att Mac OS X 10.6 blev operativsystemets Camelot, Nirvana eller vad som helst. Många menar än idag att det aldrig blev bättre än så, och jag är beredd att hålla med dem för efter version 10.6 så gjorde Apple en Apple, de kastade ut en massa saker och ersatte dessa med nya saker som varken var klara eller särskilt genomtänkta egentligen. Man borde ha anat att det skulle gå åt skogen redan när man såg att namnet på operativsystemet inte längre var Mac OS X. Det var OS X, som att datorplattformen inte spelade någon roll längre.

Efter version 10.7 så blev det sakta bättre igen. Sakta men säkert så började Apple få ordning på det som de orsakat sig själva och oss användare och när vi landade i version 10.10 av operativsystemet så var det hyfsat frid och fröjd igen. Under åren har Apple ägnat sig åt vad jag kallar för en snuttifiering av Mac OS X, eller macOS som det heter nu för tiden. Det har blivit mindre Unix och mer iPad, om ni förstår vad jag menar. Det enda som finns kvar i form av en påminnelse om att det faktisk är en form av Unix som körs på varje Mac är det faktum att vi har en terminal att starta, men det är med nöd och näppe som den finns kvar känns det som ibland.

Ändå har jag hållit fast vid plattformen alla dessa år. Jag har varit och nosat på både Windows 10 och Linux mer en gång och under en tid för ett par år sedan hade jag inte ens en Mac själv. Jag lät mig för en stund bli ideologiskt vilsen när jag insåg att jag var så oerhört trött på Apple och deras eviga mässande om sig själva och hur de gång efter annan ljög oss kunder rakt upp i ansiktet om hur de uppfunnit något när de i själva verket antingen köpt företaget som faktiskt utvecklat den nya vad-det-nu-var, eller så hade Apple helt sonika bara kopierat någon annan på marknaden som inte sällan fick se sin egna mjukvara eller idé vittra bort och dö inte långt efter att Apple slagit av sina kopieringsmaskiner. Den som minns Konfabulator minns säkert hur den gjorde att man kunde ha något som kallades för Widgets på skrivbordet - små miniprogram som kunde visa lite allt möjligt. Inte överdrivet nödvändigt men läckert och snyggt. Sen släppte Apple en ny version av Mac OS X och vips så fanns det något de kallade för “Widgets”, vilket var en rak kopia av Konfabulators funktioner. Konfabulator kostade pengar, Widgets ingick i Mac OS X och var därmed “gratis”.

Konfabulator såldes till AOL eller något annat bolag och försvann inte långt därefter. Under några år var Widgets väldigt hett inom Apple och därmed också i Mac OS X. Numera finns de kvar men de underhålls inte och det är tveksamt om någon bryr sig. För Apple spelar det ingen roll - de krossade ett litet mjukvarubolag för att ha något hett och nytt att lägga in i ett operativsystem, och några år senare är det som att det inte spelar någon roll.

Det var sånt som gjorde att jag ledsnade på Apple, bland annat. Men jag höll fast vid plattformen, köpte en iPhone X och en iPad till. Men det fick räcka så på något sätt. Jag slutade upp med att slaviskt titta på alla keynotes, läsa artiklar och följa bolaget så tätt som jag gjort under över tio år. Kort därefter sålde jag min blogg Macpro - jag hade mjölkat ut det sista jag hade i form av något som helst intresse eller entusiasm över Apple som företag eller Mac som plattform. Jag fortsatte använda plattformen dag ut och dag in men det blev som användare, inte entusiast.

Den sista droppen som fick bägaren att rinna över var något så löjlig som en liten teknisk detalj i macOS 10.14, även kallad “Mojave”. I tidigare versioner har Apple i princip fått ägna sig åt att böja och bända tid och rum för att få typsnitt att se bra ut även på skärmar som inte är av så-kallad Retina-typ, det vill säga exempelvis vanliga 1920x1200 pixlars HD-skärmar. Jag råkade ha två sådana som båda var anslutna till min Macbook Pro, en konfiguration som tjänat mig väl under många år nu. Skärmarna är inget märkvärdigt i sig - två enkla skärmar från Dell men de gjorde jobbet och av någon anledning tyckte mina ögon om dem. I macOS 10.14 “Mojave” har Apple tagit bort den ohemult komplicerade och jobbiga utjämningen av typsnitt och ersatt denna med något enklare, en kompromiss kan man kalla det. På Apples egna datorer med Retina-skärmar ser allt guld och godis ut men på externa skärmar ser det ut som den raka motsatsen till guld och godis.

Lösningen är att antingen köpa en ny dator för dyra pengar, köpa en ny extern skärm som klarar minst 4K upplösning, eller göra vad jag gjort: ansluta mina två skärmar till en PC istället och slutligen ta det steg som jag funderat på, pratat om och skrivit om i över ett år nu: att gå över till Linux.

Det du läser nu är skrivet på Linux, i en textredigerare som heter Atom. Jag valde att installera en distribution vid namn Fedora som i skrivande stund är uppe i version 28. Under vintern och våren 2018 höll jag på och hoppade fram och tillbaka mellan Mac och Linux som operativsystem för skrivbordsbruk men i och med att Apple nu bestämde sig för att låtsas om som att de inte vet att de faktiskt fortfarande säljer nya datorer med skärmar som inte uppfyller grundkravet för att kunna visa text på ett korrekt sätt i den senaste versionen av företagets operativsystem så var detta den sista droppen för mig.

Efter att ha ledsnat på att iOS blivit plottrigt och eländigt men ändå inte funnit något som var bättre i varken Windows Phone eller Android så blev det iOS och en iPhone X ändå. När det gäller datorer är jag inte fullt lika bunden vid att allt ska vara perfekt - jag klarar mig med en webbläsare, en bra textredigerare, terminalen, Slack, Discord, Skype och Dropbox, sen spelar det ingen roll om det är Windows 10 eller Linux jag kör på min dator. Vem vet - jag kanske skulle överleva med en Chromebook i framtiden, om det inte vore det för det faktum att jag inte är överdrivet förtjust i Google.

Min Macbook Pro får leva till den dag då den inte lever längre. Sedan blir det ingen ny Mac för mig - de är för dyra och har i mitt tycke fel fokus.

Dude - I’m getting a Dell.


2018-09-17

Vad Linux behöver för att lyckas på skrivbordet

Det har skrivits åtskilliga analyser om varför Linux (ännu) inte lyckats på på “skrivbordet”, det vill säga - i skrivbordsdatorer, laptops och liknande.

De flesta analyser jag läst inom området fokuserar på det tekniska, exempelvis ur denna bloggpost av Miguel de Icaza från slutet på augusti 2012:

In my opinion, the problem with Linux on the Desktop is rooted in the developer culture that was created around it.

Linus, despite being a low-level kernel guy, set the tone for our community years ago when he dismissed binary compatibility for device drivers. The kernel people might have some valid reasons for it, and might have forced the industry to play by their rules, but the Desktop people did not have the power that the kernel people did. But we did keep the attitude.

The attitude of our community was one of engineering excellence: we do not want deprecated code in our source trees, we do not want to keep broken designs around, we want pure and beautiful designs and we want to eliminate all traces of bad or poorly implemented ideas from our source code trees.

And we did.

We deprecated APIs, because there was a better way. We removed functionality because “that approach is broken”, for degrees of broken from “it is a security hole” all the way to “it does not conform to the new style we are using”.

We replaced core subsystems in the operating system, with poor transitions paths. We introduced compatibility layers that were not really compatible, nor were they maintained. When faced with “this does not work”, the community response was usually “you are doing it wrong”.

Tekniken var det som “dödade” Linux på skrivbordet, inget annat. Det var åtminstone lärdomen som de Icaza drog för sex år sedan. Inget konstigt med det egentligen - Apple var 11-12 år in i det som numera heter macOS men på den tiden hette Mac OS X, en Unix på skrivbordet som inte bara var vacker utan också var så bra så den attraherade över Linuxhackers och utvecklare från alla läger. Problemet med det sätt Linuxutvecklarna hade arbetat utifrån, enligt de Icaza, låg i bristen på bakåtkompatiblitet, i hur Linux och dess grafiska användarmiljöer hanterade äldre versioner av såväl applikationer som bibliotek och andra funktioner i operativsystemet.

När vi sakta men säkert närmar oss slutet på 2018 så kan jag rapportera att saker och ting ser ljusare ut. Nyckeln till detta heter i mitt tycke inte förbättrad bakåtkompatiblitet, vassare utvecklingsverktyg eller snyggare källkod. Nej, nyckeln stavas standardisering. Efter att en rad olika fönsterhanterare kommit och gått så har vi i dagsläget endast två stora som fajtas om användarna: Gnome och KDE. Försöket med Unity blev tyvärr en flopp men det var ett allvarligt försök att ta fram en grafisk användarmiljö som kunde, i brist på bättre ordvitsar, förena dem alla och försöka skapa en standard. Ordet standard är nyckeln här, för om det är något som grafiska användarmiljöer i Linux har saknat i alla år så är det ju en standard - en guide, ett ramverk. Med andra ord, precis det som Apple haft för MacOS och senare Mac OS X och macOS, det vill säga: HIG. Human Interface Guidelines - Apples minst sagt stränga instruktioner, eller i praktiken regelverk, om hur en applikation i macOS ska se ut, uppföra sig och vilka funktioner som hamnar var.

Det är tack vare HIG som alla applikationer på en Mac har nästintill identiska menyer vilket gör att det är lätt att hitta i en applikation du kanske aldrig använt tidigare. Om du använt Microsoft Windows så har du säkert slagits över hur vissa applikationer ser ut som något katten släpat in, även om samma applikation är 100 procent certifierad för att fungera på Windows 10. Anledningen är enkel - Microsoft har visserligen riktlinjer för hur en applikation ska se ut när man installerar den i Windows 10 men de är inte på något sätt tvingande och har aldrig varit det heller varför många applikationer under Windows alltid sett ut som det där katten släpat in - användarna har aldrig behövt bry sig så varför börja nu?

Med de senaste versionerna av Gnome som jag kört så tycker jag mig se försökt till att standardisera saker och ting. Det finns en applikationsbutik och de inställningar man kan göra i Gnome för exempelvis e-postkonton används faktiskt av vissa applikationer i systemet. Många applikationer ser fortfarande ut som de släpats genom en köttkvarn och sen tejpats ihop med gaffatejp men saker och ting blir faktiskt bättre. Sakta men säkert, som det brukar heta.

För att Linux verkligen ska bli framgångsrikt på skrivbordet måste man ta bort de valmöjligheter som många har idag. Inget mer KDE, inget i3, inget Xfce, och så vidare, utan bara en enda standard: Gnome. Ska Linux lyckas på skrivbordet kan det inte finnas 40-50 olika fönsterhanterare - det är en valmöjlighet som endast skadeskjuter Linux skrivbordsambitioner ytterligare.

Linuxvärlden måste helt enkelt bli mer som Apple - mindre valfrihet och mer diktatoriskt. Om Linuxvärlden sedan anser att det är ett rimligt offer att göra för att få en bättre och mer hållbar grafisk skrivbordsmiljö med Linux under skalet återstår väl att se men jag tror inte Linuxfolket kommer vilja gå den vägen, och en del av mig är tacksam för det.


2018-09-16

Proxmox-kluster med Fibre Channel

Kommer man från en virtualiseringsplattform som bestått av VMware ESXi, Hyper-V och liknande kommersiella plattformar så är det sällan ett problem att bygga ett virtualiseringskluster med delad lagring som innefattar Fibre Channel. iSCSI och NFS är överlag inte ett problem med Proxmox men Fibre Channel kan innebära större utmaningar än det rimligen borde vara.

Nyckeln till att få det hela att fungera är egentligen flera dito. Under VMware ESXi kan man exempelvis bara lägga till ett Fibre Channel-LUN på alla servrar som ska hantera virtuella maskiner och sen löser sig resten automatiskt. Har du endast en enda Proxmox-server kan du helt enkelt formattera enheten som vilken hårddisk som helst och sen lägga till den i Proxmox, men har du flera servrar som ska agera i ett kluster med failover-funktion krävs det lite mer. Denna guide förutsätter att du redan satt upp ditt kluster med allt vad det innebär.

Det finns ett stort aber med att köra den här typen av lagring i Proxmox. Till skillnad från NFS så tycks Proxmox åtminstone med mitt lätt uråldriga SAN (E610F från Promise) inte klara av att låta flera medlemmar i ett kluster komma åt och använda Fibre Channel SAN:et samtidigt via Fibre Channel. Istället är det en av medlemmarna i klustret som jobbar mot ett LUN i SAN:et via Fibre Channel och sedan delar ut detta LUN till andra medlemmar i klustret. Det finns ett stort aber i detta sammanhang och det är att utdelningen inte sker via Fibre Channel utan via ethernet, antingen i form av ett bond eller en enstaka länk. Det är viktigt att komma ihåg detta eftersom prestandan mot Fibre Channel LUN:et för de andra medlemmarna i klustret inte kommer bli optimal, men det fungerar åtminstone hjälpligt. En kommersiell virtualiseringsplattform som tidigare nämnda VMware ESXi klarar av detta utan omsvep och det hade onekligen varit önskvärt om Proxmox gjorde det samma. Jag har ännu inte testat kombinationen Proxmox och iSCSI men jag misstänker att det fungerar på samma sätt som med Fibre Channel om man har ett kluster.

Under Proxmox måste man först och främst skapa en volym med LVM på den enhet som ditt FC-lun presenterar för dig.

sgdisk -N 1 /dev/sdXX

Därefter är det dags att göra iordning LUN:et för LVM:

pvcreate –metadatasize 250k -y -ff /dev/sdXX

Slutligen är det dags att skapa den logiska volymen i LVM:

lvcreate –name namn –size XXXXG namn

Exempelvis skapade jag en volym på 4,6 terabyte med namnet vmdata01 i volymgruppen vmdata:

lvcreate –name vmdata01 –size 4600G vmdata

I det här läget är det för det mesta inga problem att lägga till volymen i Proxmox-klustret i det här läget men det finns två saker som återstår för att detta ska fungera.

Det första är att installera multipath-funktionaliteten:

apt-get install multipath-tools -y

Därefter startar du det hela och kollar om topologin för multipath ser bra ut:

multipath -ll

Om din volym inte syns i klustret eller inte kan läggas till får du göra det manuellt:

pvesm add lvm vmdata01 –vgname vmdata01

Det sista du kan behöva göra är att starta om den eller de servrar i klustret som är anslutna till ditt SAN via Fibre Channel.

Efter detta borde du kunna migrera virtuella gäster mellan dina servrar i klustret utan problem.


2018-08-15

Välkommen till Unixpro

Unix. Ett laddat ord med en lång historia där allt från män med korrekt skäggväxt till hackers, programmerare och systemadministratörer i alla åldrar ägnat årtionden åt att upptäcka, lära och bemästra en operativsystemsfilosofi som, om sanningen ska fram, är väldigt vänlig även om Unix, som det berömda talesättet stipulerar, är en aning petig med vem dess vänner egentligen är.

Unixpro är bloggen för dig som använder någon form av Unix eller Linux. Med Unix avses allt från FreeBSD, OpenBSD, macOS, Solaris, AIX, Irix eller annan variant som helt eller delvis bygger på Unix och till Linux där Unixpro företrädesvis skriver om CentOS, Ubuntu och Alpine. Unixpro avhandlar inte bara dessa operativsystem utan också vad du kan göra med dem i form av applikationer och lösningar som virtualisering och lagring.

Unixpro kom till efter att sajtens skapare under 14 år skrev och publicerade bloggen Macpro, vars mer proffsinriktade kostym blev allt snävare i takt med att Apple övergick till att satsa mer på mobila produkter och istället för att bevara det som gjorde Mac OS X, senare macOS, unikt övergick till att snuttifiera plattformen allt mer. Unixpro kommer ändå att skriva om macOS då den har tydliga arv från BSD-världen under skalet och för att man, emellanåt, faktiskt kan göra intressanta saker med denna plattform.

Unixpro kommer företrädesvis också avhandla mobila plattformar som Android och iOS och varianter av det senare som tvOS och watchOS.

Innehållet på Unixpro kommer vara allt från nyheter till guider, tips och tricks. Förhoppningsvis hittar du något här som du gillar.

Varmt välkommen!