I wrote a little ago about how to install Ansible Semaphore as a docker. It’s been raining a lot since them, and now it’s time to finish what I started and install it for real. It’s not so complicated. Unfortunately the result didn’t deliver. Below you have my installation log and my setup, together with a relevant output.
## > wget https://github.com/ansible-semaphore/semaphore/releases/\ > download/v2.8.75/semaphore_2.8.75_linux_amd64.rpm --DATE-- https://github.com//semaphore_2.8.75_linux_amd64.rpm Resolving github.com (github.com)... 184.108.40.206 Connecting to github.com (github.com)|220.127.116.11|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://XXX Saving to: - semaphore_2.8.75_linux_amd64.rpm 100%[==========================>] 11,696,811 34.3MB/s in 0.3s DATE (34.3 MB/s) - semaphore_2.8.75_linux_amd64.rpm saved [11696811/11696811] ## > yum install semaphore_2.8.75_linux_amd64.rpm Loaded plugins: fastestmirror, langpacks, nvidia Examining semaphore_2.8.75_linux_amd64.rpm: semaphore-2.8.75-1.x86_64 Marking semaphore_2.8.75_linux_amd64.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package semaphore.x86_64 0:2.8.75-1 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================ Package Arch Version Repository Size ============================ Installing: semaphore x86_64 2.8.75-1 semaphore_2.8.75_linux_amd64 31 M Transaction Summary ================================ Install 1 Package Total size: 31 M Installed: semaphore.x86_64 0:2.8.75-1 Complete! ## > semaphore setup Hello! You will now be guided through a setup to:
1. Set up configuration for a MySQL/MariaDB database 2. Set up a path for your playbooks (auto-created) 3. Run database Migrations 4. Set up initial semaphore user & password
What database to use: 1 - MySQL 2 - BoltDB 3 - PostgreSQL (default 1):
db Hostname (default 127.0.0.1:3306): db User (default root): db Password: MYPASSWORD db Name (default semaphore): Playbook path (default /tmp/semaphore): Web root URL (optional, see Web-root-URL): Enable email alerts? (yes/no) (default no): yes Mail server host (default localhost): Mail server port (default 25): Mail sender address (default semaphore@localhost): XXX Enable telegram alerts? (yes/no) (default no): Enable slack alerts? (yes/no) (default no): Enable LDAP authentication? (yes/no) (default no): Config output directory (default /root/Downloads):
Running: mkdir -p /XXX/semaphore.. Configuration written to /XXX/semaphore/config.json.. Pinging db..
Running db Migrations.. Executing migration v0.0.0 (at DATE)... Creating migrations table [12/0]8] Executing migration v1.0.0 (at DATE)... [4/87] ... some other migrations... Executing migration v2.8.58 (at DATE)... [1/57] Migrations Finished
> Username: root > Email: firstname.lastname@example.org WARN no rows in result set level=Warn > Your name: MYNAME > Password: MYPASSWORD
You are all setup Juan! Re-launch this program pointing to the configuration file
./semaphore server --config /XXX/semaphore/config.json
To run as daemon:
nohup ./semaphore server \ --config /XXX/semaphore/config.json &
You can login with email@example.com or root.
Now let’s run it.
## > semaphore server --config /XXX/semaphore/config.json MySQL firstname.lastname@example.org:3306 semaphore Tmp Path (projects home) /XXX/ansible/semaphore Semaphore v2.8.75 Interface Port :3000 Server is running WARN write IP:3000->IP:41248: write: broken pipe level=Warn INFO Task 1 added to queue INFO Set resource locker with TaskRunner 1 INFO Stopped preparing TaskRunner 1 INFO Release resource locker with TaskRunner 1 INFO Task 1 removed from queue
The INFO entries are produced after running my first task successfully. It takes a little to configure it (you need to write an inventory, an environment, choose a key and define your repositories). Everything is fine from now on. Unfortunately it’s relying on repositories and quite complex playbooks, so it’s not going to be my choice. I want something that even a monkey with a keyboard can use. I’ll keep you informed of the results of my search 🙂
Preliminaries: the date command works but it shows a different output when running as a cronjob than when running as a script. That is:
## > date=$(date +"%Y-%m-%d %H:%M:%S") ## > echo $date 2023-03-27 20:04:49 ... wait for the cron each minute to run... ## > more date.log 2023-03-27 14:05:49
Such a precise skew directly points to a wrong timezone. Let’s configure it.
## > timedatectl Warning: Ignoring the TZ variable. Reading the system's time zone setting only. Local time: Mon 2023-03-27 14:12:29 EDT Universal time: Mon 2023-03-27 18:12:29 UTC RTC time: Mon 2023-03-27 18:12:29 Time zone: America/New_York (EDT, -0400) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2023-03-12 01:59:59 EST Sun 2023-03-12 03:00:00 EDT Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2023-11-05 01:59:59 EDT Sun 2023-11-05 01:00:00 EST
We are NOT in NY! Unfortunately, I hope. I found the fix here. I set the zone to Berlin and restart the crons just in case:
I thought the docker names were infinite, but if I need to believe what my2cents says about this (btw image also taken fro the article) it is not the case. It’s just a go algorithm that literally picks up a name and an adjetive from a hardcoded list. Here you have a running example and the github code. How boring explanation. It’s not aliens trying to communicate or a desperate AI doing the same 😀
We need to have a browser up to date. And some things don’t run unless we have Chrome (picture taken from here). Unfortunately, the browser is not available by default on CentOS 7.X, so you cannot simply yum install it 🙂 . How can you enjoy it? I found the solution on this linuxize post. In two steps.
I’m writing quite some web code here and there, and I’m in need of a generic IDE with some predictive capabilities, a WYSIWYG feature, and available everywhere, to quickly correct my bugs. I found in phoenix the friend I needed for it. Here you have the github project page (picture taken from it) but you better try it out directly on your browser without any additional requirements.
At the very beginning you are asked to choose between a New project, or Import Project. On New you can choose Phoenix default or HTML5. On Import, Open Folder or GitHub project. I do have a few GitHub project, but they are private and I want to keep it this way. So I simply clone the project and open the folder on the Import section.
And I don’t need to do so much afterwards. Clicking around is allowing me to experience the changes on my code almost live. You have the classical shortcuts available (CTRL+S, etc), autocompletion of parameters and words, and everything I really need, so it delivers. At least for me. Will I be able to find a multi-language version of this? I mean, I do have bash scripts, and python code, and even more. But step by step, maybe 🙂
Well I’m happy I’m not the first one with this issue. I’ve updated my CentOS 7.X to the latest kernel, with the so called retbleed kernel patch, and I get the above error when running mmbuildgpl as usual after getting a new kernel. The solution to the issue you can find on this IBM post. I copy it from the article:
Edit /usr/lpp/mmfs/src/gpl-linux/Kbuild on the node
Find the line $(KBHOSTPROGS) := lxtrace
Above that line, add a new one with: CFLAGS_kdump-kern.o += -mfunction-return=keep
Save the file and run mmbuildgpl again.
After a successful build I simply try mmstartup and, so far, so good. NOTE: since this is a “mini-post” I have backdated it so that I can post something else today 🙂
I come back to Fedora after… 6 years of so… with Scientific Linux first, then with CentOS. It feels nice to come back to it after such a long time! The installation went smootly and I ended up with kernel 6.1.14, which is, very modern in comparison with the one I’m using in CentOS (3.10.0) and slightly more modern than the Ubuntu one (5.15.0). Actually the picture above corresponds to kernel 5.12.8, but the feeling is the same. I took the pic from the installation guide I have followed. Basically the install is done in the same way than 6 years ago. Allow me to ellaborate.
Get the cuda package. I got cuda_12.0.1_525.85.12_linux.run
Try to run it and check the errors on /var/log/cuda-installer.log and /var/log/nvidia-installer.log.
Install the missing packages (maybe kernel-devel and similar)
Blackliust the nouveau drivers echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
Edit /etc/default/grub. My grub line looks like this : GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau nvidia-drm.modeset=1"
Make initramfs backup first. mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
Generate a new initramfs. dracut /boot/initramfs-$(uname -r).img $(uname -r)
Reboot, go to init 3 (no graphics) and try again the installer.
As you see, pretty easy but with a lot of steps. I need to cook up a better way. Maybe with ansible. I’ll keep you posted. BTW, you can download Fedora for Workstations here. BTW2: sorry but the dragons are fighting, maybe they will come back soon 😉
If I ever have full control over the network, I’d like to install something like this. For the moment I have only partial control – a subnet – so all these network-scraping solutions will not be welcomed in my neighbourhood. But you need to hear about this. Here you have the official documentation. If you click on the LIVE DEMO you will see the power of it. And here you have a condensed user guide. I took the above picture from it. As you see, it’s one web to control it all! Windows, Linux, mac, you name it. With grafana integration and a big community. You get plugins for everything! Pity that I’m not the network administrator. Well, no-one is perfect… 😛
In my eternal search for a good and free project management tool I’ve found this little jewel called Taskcafe. I went for a docker installation without changing an iota of the installation procedure, we clone the repository:
git clone https://github.com/JordanKnott/taskcafe && cd taskcafe
Now do the following:
docker-compose -p taskcafe up -d
This will start a postgres instance as well as a taskcafe instance, so two dockers, taskcafe_web_1 and taskcafe_postgres_1. But how do I log in? Fortunately there’s a trend about it. Just replace the end of the URL you got by /register. After getting my admin, the rest is easy. I create my first project, then I add lists to it, and cards. That’s it. Up and running! Beautiful ❤