Skip to main content

Posts

Ansible: How installing a group of packages?

Installing a set of packages with Ansible The context I need to install a group of packages on multiple Linux servers. Ansible is the right tool for that. The host file: hosts [test_machines]    test1.my_domain.com    test2.my_domain.com [dev]    dev1.my_domain.com    dev2.my_domain.com [uat]    uat1.my_domain.com    uat2.my_domain.com [prod]    prd1.my_domain.com    prd2.my_domain.com The playbook : add_packages.yml - hosts: all   vars_files:     - data/all_my_packages.yml   tasks:   - name: Ensure a set of packages is installed.     yum:       name={{ item.name }}       state={{ item.state }}     with_items: '{{ packages }}' The datafile: data/all_my_packages.yml packages:  - { name: 'glibc.i686', state: 'present' }  - { name: 'glibc.x86_64', state: 'present' ...

How to compare multiple files?

The context For a project, we had to create over 100 virtual machines (VM), each one with specific caracteristics: OS, # CPU, RAM, # disks, disk space... About 1/3 VM are Windows, 2/3 Linux. I maintain a MS Access Database with the requested VM. The project is near ending; for quality control, I need to validate what is delivered vs. what was requested. My sysadmins went on almost(*) all the VM to get the caracteristics; the result is 2 text files, one for Windows and one for Linux. *: This is important. I don't have all the VM yet, hence I will have to do this process again; this have to be taken into account in my solution. How to compare the data? Method 1: by hand Boring, tedious and highly error prone. Forgotten. Method 2: using Excel I tried that first. But I'm not a king on Excel, and because the caracteristics are quite different between Linux and Windows, is't hard to make comparisons. Abandoned. Method 3: using Access This is actuall...

MS Access: embedded INNER JOIN

How to embed INNER JOIN in MS Access SELECT ... FROM ( ( T1  INNER JOIN  T2 ON ... )        INNER JOIN  T3 ON ... )      INNER JOIN T4  ON ...;

Roland TR77

A new rhythm box in my studio: Roland TR77. Released in 1972 but sold alonside the 70's , mine was built in November 1976. Many latin rhythms: Chacha, Beguine, Mambo, Samba,  Rumba, Bossa Nova, ... Very good sound, a lot of modulation. A very interesting instrument. The Mambo could be heard, among many Polymoog filter sweeps, in one of my favorite song: "Song For Guy" by Elton John.

Emulation of Fujitsu MB8877 Floppy Disk Controler with Arduino

Update This project was never finished. My initial motivation was that I only had one 5"1/4 floppy disk. Since then, I have been given about thirty floppy disks whose halves are new. The other reason is that my prototype was never recognized by the QX1; the sequencer was simply not booting up. Since I had other sequencers to play with (PC with 2 x MOTU MTPAV USB + MidiSport 4X4 = 20 inputs, 20 outputs, 320 channels), I gave up for now and put back the controler and floppy drive. However, I'm still studying the possibility of completely replacing the motherboard with a Raspberry Pi: check this llink . Context I have a Yamaha QX1 MIDI sequencer from 1984. The backup medium is 5"1/4 floppy disks. This project is an attempt to replace the floppy drive (Canon MF-221) and the Floppy Disk Controler (Fujitsu MB8877a) with an Arduino. Documentation Yamaha QX1 Operating Guide.pdf Yamaha QX1 Reference Manual.pdf Yamaha QX1 Overall Circuit Diagram Part 1...

MS Access: fancy InStr function

I want to compare the installed packages between a couple of Linux servers. Obviously, using a database comes to mind. And my Office Pro includes a pretty good database: MS Access. The problem I have tables with a list of Linux packages installed on several servers, one table per server. I want a table with all the packages common to all servers, and for each package (ex: audit-libs-python-1.8-2.el5 ), the package root ( audit-libs-python ) and the version ( 1.8-2.el5 ). Step 1: selecting the common packages SELECT DISTINCT Srv1.Package FROM Srv1, Srv2, Srv3, Srv4 WHERE Srv1.Package = Srv2.Package and Srv2.Package = Srv3.Package and Srv3.Package = Srv4.Package; Step 2: extracting the package root and version Package versions are not always written in a similar way. Some examples: Package                Root        Version anacron-2.3-45....