Skip to content

Instantly share code, notes, and snippets.

Avatar

Juanje Ojeda juanje

View GitHub Profile
@juanje
juanje / description.md
Last active Aug 8, 2022
Connect services with docker-compose at multirepo project
View description.md

Connect services with docker-compose at multirepo project

Sometimes you have a project with different services (or microservices) and each one of them has its own repository. At those cases, tests the whole project (and its interactions) can be challenging.

With Docker and Docker Compose you can run easily each service from its repo, but for making them to see each other you (usually) need to manually create a network with Docker, assume so facts (as directories names) or do some crazy network configurations.

TL;DR

You have the final configuration here.

@juanje
juanje / winrm_setup.bat
Last active Apr 5, 2022
Batch script for activating the remote administration on Windows vía WinrRM
View winrm_setup.bat
@ECHO ON
REM This batch script is almost identical to http://code.can.cd/winrm_setup.bat
REM To use this from powershell on windows in a one liner:
REM (New-Object System.Net.WebClient).DownloadFile('https://gist.github.com/juanje/8496054/raw/winrm_setup.bat','winrm_setup.bat') ; .\winrm_setup.bat
cmd.exe /c winrm quickconfig -q
cmd.exe /c winrm quickconfig -transport:http
cmd.exe /c winrm set winrm/config @{MaxTimeoutms="1800000"}
cmd.exe /c winrm set winrm/config/winrs @{MaxMemoryPerShellMB="300"}
cmd.exe /c winrm set winrm/config/service @{AllowUnencrypted="true"}
@juanje
juanje / podman_comands.sh
Created Jun 10, 2020
Run Redis with Podman. As a Systemd service and as a Pod.
View podman_comands.sh
# This is a simple example of how to run a basic service inside a container with Podman
# Podman
## Pull the Docker image
podman pull docker.io/redis
## Run the container as you would do with Docker
podman run -d --name redis_server -p 6379:6379 redis
# But Podman facilitate some extra ways:
@juanje
juanje / gist:3797297
Created Sep 28, 2012
Mount apt cache of a Vagrant box in the host to spin up the packages installation
View gist:3797297

This is a little trick I use to spin up the packages instalation on Debian/Ubuntu boxes in Vagrant.

I add a simple function that checks if a directory named something similar to ~/.vagrant.d/cache/apt/opscode-ubuntu-12.04/partial (it may have another path in Windows or MacOS) and create the directory if it doesn't already exist.

def local_cache(basebox_name)
  cache_dir = Vagrant::Environment.new.home_path.join('cache', 'apt', basebox_name)
  partial_dir = cache_dir.join('partial')
  partial_dir.mkdir unless partial_dir.exist?
 cache_dir
@juanje
juanje / Description.md
Last active Nov 17, 2021
Limit Chrome from eating all the memory and CPU
View Description.md

I was tired of Chrome eating all my laptop resources so I decided to put some limit to it with cgroup.

As I was using Ubuntu 12.04 with support for cgroup, I installed the package cgroup-bin and add the following group to the file /etc/cgconfig.conf:

group browsers {
    cpu {
#       Set the relative share of CPU resources equal to 25%
        cpu.shares = "256";
 }
@juanje
juanje / compose_variables.yml
Last active Feb 21, 2021
Different ways to compose variables from other variables in Ansible
View compose_variables.yml
---
- name: Compose variables and merge lists
hosts: localhost
connection: local
gather_facts: no
vars:
api_versions:
- 1
- 2
@juanje
juanje / try_until.sh
Last active Oct 9, 2020
Example of function to try something a max number of times (and wait between retries).
View try_until.sh
#!/bin/bash
URL="http://ipv4.download.thinkbroadband.com/50MB.zip"
function get_file() {
# Declare these local variables as integer
local -i count
local -i max_retries
local -i wait_time
local filename
@juanje
juanje / cmdline.sh
Last active Oct 9, 2020
RPM tips & tricks
View cmdline.sh
# Just a place to write down notes for old time Debian/Ubuntu user
# that has just moved into Fedora/RedHat world
# Show which package provides the file '/bin/ls'
# Similar to 'dpkg -S /bin/ls'
$ rpm -qf /bin/ls
coreutils-8.5-7.fc14.i686
# The same but showing only the package name (without version)
$ rpm -qf /bin/ls --queryformat '%{NAME}\n'
@juanje
juanje / backup_toolbox_images.sh
Last active Aug 18, 2020
Some simple scripts to sync Toolbox's images using Skopeo
View backup_toolbox_images.sh
#!/bin/bash
declare -a versions
versions=(29 31 32 33)
for version in "${versions[@]}"; do
src="registry.fedoraproject.org/f${version}/fedora-toolbox:${version}"
dest="fedora-toolbox-${version}"
echo "Create local copy from the remote image '${src}' into the directory '${dest}'"
@juanje
juanje / virsh_remove_domain.sh
Created Aug 14, 2020
Remove libvirt domain after Vagrant fails
View virsh_remove_domain.sh
# Found hre: https://github.com/vagrant-libvirt/vagrant-libvirt/issues/658#issuecomment-380976825
sudo virsh list --all
# Find the domain is failing (<THE_MACHINE>)
sudo virsh destroy <THE_MACHINE>
sudo virsh undefine <THE_MACHINE> --snapshots-metadata --managed-save
sudo virsh vol-list default
sudo virsh vol-delete --pool default <THE_VOLUME>