41554 blogs · [ { "id": "01a0c526-cf86-73ae-9437-03aa8fac0023", "title": "Ansible: Ubuntu alternatives using the community.general collection", "url": "https://fabianlee.org/2021/06/20/ansible-ubuntu-alternatives-using-the-community-general-collection/", "published_at": "2021-06-20T10:44:02+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa8fb70e5e", "title": "Git: cloning a git repository from one location to another", "url": "https://fabianlee.org/2021/06/18/git-cloning-a-git-repository-from-one-location-to-another/", "published_at": "2021-06-18T22:01:48+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9081835b", "title": "Ansible: implementing a looping block using include_tasks", "url": "https://fabianlee.org/2021/06/18/ansible-implementing-a-looping-block-using-include_tasks/", "published_at": "2021-06-18T16:02:07+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa914cd968", "title": "Ansible: creating a cron.d file for periodic system jobs", "url": "https://fabianlee.org/2021/06/17/ansible-creating-a-cron-d-file-for-periodic-system-jobs/", "published_at": "2021-06-17T12:20:01+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa91ef2910", "title": "Bash: using printf to display fixed-width padded string", "url": "https://fabianlee.org/2021/06/09/bash-using-printf-to-display-fixed-width-padded-string/", "published_at": "2021-06-09T15:27:37+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9233ec97", "title": "Ansible: unzipping an encrypted file using the unarchive module", "url": "https://fabianlee.org/2021/06/09/ansible-unzipping-an-encrypted-file-using-the-unarchive-module/", "published_at": "2021-06-09T14:57:48+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa923b5423", "title": "Kubernetes: container for offering NTP as a Service", "url": "https://fabianlee.org/2021/06/02/kubernetes-container-for-offering-ntp-as-a-service/", "published_at": "2021-06-02T20:24:15+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa92e3e26e", "title": "Docker: building an ntp server image with Alpine and chrony", "url": "https://fabianlee.org/2021/06/02/docker-building-an-ntp-server-image-with-alpine-and-chrony/", "published_at": "2021-06-02T17:22:25+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa93700ad3", "title": "Ubuntu: WireGuard VPN for Ubuntu server, with an iPhone client", "url": "https://fabianlee.org/2021/05/31/ubuntu-wireguard-vpn-for-ubuntu-server-with-an-iphone-client/", "published_at": "2021-05-31T19:54:45+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa940a9b38", "title": "Ubuntu: site-to-site VPN with WireGuard", "url": "https://fabianlee.org/2021/05/31/ubuntu-site-to-site-vpn-with-wireguard/", "published_at": "2021-05-31T12:48:38+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa940f4b08", "title": "Ansible: installing the latest Ansible on Ubuntu", "url": "https://fabianlee.org/2021/05/31/ansible-installing-the-latest-ansible-on-ubuntu/", "published_at": "2021-05-31T10:15:13+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9473026e", "title": "Terraform: provisioning GCP servers in both public and private subnets", "url": "https://fabianlee.org/2021/05/30/terraform-provisioning-gcp-servers-in-both-public-and-private-subnets/", "published_at": "2021-05-30T22:05:06+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa94d915b3", "title": "Terraform: provisioning AWS servers in both public and private subnets", "url": "https://fabianlee.org/2021/05/30/terraform-provisioning-aws-servers-in-both-public-and-private-subnets/", "published_at": "2021-05-30T21:26:35+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa95b44498", "title": "Ubuntu: WireGuard VPN for Ubuntu servers, with a Windows client", "url": "https://fabianlee.org/2021/05/30/ubuntu-wireguard-vpn-for-ubuntu-servers-with-a-windows-client/", "published_at": "2021-05-30T15:39:32+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa95b4919d", "title": "Terraform: provisioning an RDP enabled Windows server in Azure", "url": "https://fabianlee.org/2021/05/30/terraform-provisioning-an-rdp-enabled-windows-server-in-azure/", "published_at": "2021-05-30T00:45:14+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa95df9699", "title": "Terraform: installing Terraform manually on Ubuntu", "url": "https://fabianlee.org/2021/05/30/terraform-installing-terraform-manually-on-ubuntu/", "published_at": "2021-05-30T00:37:55+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa95f8a8fa", "title": "Ansible: orchestrating ssh access through a bastion host", "url": "https://fabianlee.org/2021/05/29/ansible-orchestrating-ssh-access-through-a-bastion-host/", "published_at": "2021-05-29T23:31:33+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9636f5cd", "title": "Bash: render template from matching bash variables", "url": "https://fabianlee.org/2021/05/29/bash-render-template-from-matching-bash-variables/", "published_at": "2021-05-29T22:11:04+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa963844a7", "title": "Azure: installing the Azure CLI on Ubuntu", "url": "https://fabianlee.org/2021/05/29/azure-installing-the-azure-cli-on-ubuntu/", "published_at": "2021-05-29T20:39:38+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa96799ac3", "title": "Terraform: invoking a startup script for a GCE google_compute_instance", "url": "https://fabianlee.org/2021/05/28/terraform-invoking-a-startup-script-for-a-gce-google_compute_instance/", "published_at": "2021-05-28T13:10:25+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa972bdbdc", "title": "Terraform: invoking a startup script for an EC2 aws_instance", "url": "https://fabianlee.org/2021/05/28/terraform-invoking-a-startup-script-for-an-ec2-aws_instance/", "published_at": "2021-05-28T12:39:47+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa98189218", "title": "Ansible: creating a variable from a remote or local file content", "url": "https://fabianlee.org/2021/05/25/ansible-creating-a-variable-from-a-remote-or-local-file-content/", "published_at": "2021-05-25T00:10:30+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa98f523d1", "title": "Ansible: applying roles to certain groups in a single playbook", "url": "https://fabianlee.org/2021/05/24/ansible-applying-roles-to-certain-groups-in-a-single-playbook/", "published_at": "2021-05-24T17:53:55+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa99349455", "title": "Terraform: using update-alternatives to manage multiple terraform binaries", "url": "https://fabianlee.org/2021/05/24/terraform-using-update-alternatives-to-manage-multiple-terraform-binaries/", "published_at": "2021-05-24T14:22:40+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa99398cae", "title": "Ansible: installing linux-headers matching kernel for Ubuntu", "url": "https://fabianlee.org/2021/05/19/ansible-installing-linux-headers-matching-kernel-for-ubuntu/", "published_at": "2021-05-19T13:15:06+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa99d1c71d", "title": "Kubernetes: Using Downward API metadata from a GoLang application", "url": "https://fabianlee.org/2021/05/01/kubernetes-using-downward-api-metadata-from-a-golang-application/", "published_at": "2021-05-01T03:55:50+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9a0f0aed", "title": "Kubernetes: Using Downward API metadata from a Python application", "url": "https://fabianlee.org/2021/05/01/kubernetes-using-downward-api-metadata-from-a-python-application/", "published_at": "2021-05-01T03:36:41+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9b06c55a", "title": "Kubernetes: using the Downward API to access pod/container metadata", "url": "https://fabianlee.org/2021/05/01/kubernetes-using-the-downward-api-to-access-pod-container-metadata/", "published_at": "2021-05-01T02:54:30+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9b3ed563", "title": "GCP: pulling an image from the Container Registry of another project", "url": "https://fabianlee.org/2021/04/28/gcp-pulling-an-image-from-the-container-registry-of-another-project/", "published_at": "2021-04-28T14:24:42+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9be053bb", "title": "GCP: pushing GKE images into gcr.io to avoid pull rate limits", "url": "https://fabianlee.org/2021/04/27/gcp-pushing-gke-images-into-gcr-io-to-avoid-pull-rate-limits/", "published_at": "2021-04-27T15:12:26+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9bfe40b1", "title": "Bash: sed substitution with an exclusion pattern", "url": "https://fabianlee.org/2021/04/17/bash-sed-substitution-with-an-exclusion-pattern/", "published_at": "2021-04-17T20:07:51+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9c5cc39d", "title": "Kubernetes: detecting the installed version of nginx ingress", "url": "https://fabianlee.org/2021/04/14/kubernetes-detecting-the-installed-version-of-nginx-ingress/", "published_at": "2021-04-14T23:48:06+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9d5823fb", "title": "Ansible: preferring a pull from a URL with fallback to a local file", "url": "https://fabianlee.org/2021/04/14/ansible-preferring-a-pull-from-a-url-with-fallback-to-a-local-file/", "published_at": "2021-04-14T22:50:52+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9e3d3f1f", "title": "GCP: troubleshooting nodepool replica changes for Anthos on-premise", "url": "https://fabianlee.org/2021/04/14/gcp-troubleshooting-nodepool-replica-changes-for-anthos-on-premise/", "published_at": "2021-04-14T16:22:54+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9ec389a5", "title": "Kubernetes: testing pod communication directly from istio sidecar proxy", "url": "https://fabianlee.org/2021/04/09/kubernetes-testing-pod-communication-directly-from-istio-sidecar-proxy/", "published_at": "2021-04-09T11:49:13+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aa9f754004", "title": "Kubernetes: istio Gateway in a different namespace than VirtualService", "url": "https://fabianlee.org/2021/04/09/kubernetes-istio-gateway-in-a-different-namespace-than-virtualservice/", "published_at": "2021-04-09T10:14:20+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa061783a", "title": "Kubernetes: copying a secret from one namespace to another", "url": "https://fabianlee.org/2021/04/09/kubernetes-copying-a-secret-from-one-namespace-to-another/", "published_at": "2021-04-09T09:48:26+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa1186b3e", "title": "Docker: determining container responsible for largest overlay directories", "url": "https://fabianlee.org/2021/04/08/docker-determining-container-responsible-for-largest-overlay-directories/", "published_at": "2021-04-08T18:41:50+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa151de03", "title": "Ansible: pulling values from nested dictionaries when path might not exist", "url": "https://fabianlee.org/2021/04/06/ansible-pulling-values-from-nested-dictionaries-when-path-might-not-exist/", "published_at": "2021-04-06T19:48:19+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa230eb45", "title": "Bash: minimal .vimrc settings for python and yaml editing", "url": "https://fabianlee.org/2021/04/06/bash-minimal-vimrc-settings-for-python-and-yaml-editing/", "published_at": "2021-04-06T11:36:01+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa2c88d69", "title": "Ansible: action only executed if tag set, avoiding ‘all’ behavior", "url": "https://fabianlee.org/2021/04/05/ansible-action-only-executed-if-tag-set-avoiding-all-behavior/", "published_at": "2021-04-05T22:48:42+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa323f9fc", "title": "Ansible: creating SAN certificates with a custom root CA", "url": "https://fabianlee.org/2021/04/05/ansible-creating-san-certificates-with-a-custom-root-ca/", "published_at": "2021-04-05T12:19:36+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa3f2f478", "title": "Ubuntu: loading a key into ssh-agent at login with a user-level systemd service", "url": "https://fabianlee.org/2021/04/05/ubuntu-loading-a-key-into-ssh-agent-at-login-with-a-user-level-systemd-service/", "published_at": "2021-04-05T00:14:13+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa43ce000", "title": "Bash: while statement with ‘read’ not processing last value", "url": "https://fabianlee.org/2021/03/26/bash-while-statement-with-read-not-processing-last-value/", "published_at": "2021-03-26T15:17:14+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa504b99c", "title": "Bash: performing multiple substitutions with a single sed invocation", "url": "https://fabianlee.org/2021/03/25/bash-performing-multiple-substitutions-with-a-single-sed-invocation/", "published_at": "2021-03-25T21:32:10+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa5d872cc", "title": "Ansible: generating content for all template files using with_fileglob", "url": "https://fabianlee.org/2021/03/24/ansible-generating-content-for-all-template-files-using-with_fileglob/", "published_at": "2021-03-24T14:08:14+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa649e557", "title": "Bash: Capturing HTTP status code using curl write-out", "url": "https://fabianlee.org/2021/03/18/bash-capturing-http-status-code-using-curl-write-out/", "published_at": "2021-03-18T14:14:05+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa66a8050", "title": "Kubernetes: Updating an existing ConfigMap using kubectl replace", "url": "https://fabianlee.org/2021/03/17/kubernetes-updating-an-existing-configmap-using-kubectl-replace/", "published_at": "2021-03-17T15:52:47+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa6e2d9db", "title": "GCP: Creating gcp service account with IAM roles using gcloud", "url": "https://fabianlee.org/2021/03/17/gcp-creating-gcp-service-account-with-iam-roles-using-gcloud/", "published_at": "2021-03-17T14:16:07+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa730740c", "title": "Ansible: deleting a file path, but only if a symbolic link", "url": "https://fabianlee.org/2021/03/02/ansible-deleting-a-file-path-but-only-if-a-symbolic-link/", "published_at": "2021-03-02T16:01:54+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa7aac8d2", "title": "Python: Setting the preferred Python version on Bionic 18 and Focal 20", "url": "https://fabianlee.org/2021/02/27/python-setting-the-preferred-python-version-on-bionic-18-and-focal-20/", "published_at": "2021-02-27T22:52:22+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa8454144", "title": "Ubuntu: using ldapsearch to query against a secure Windows Domain Controller", "url": "https://fabianlee.org/2021/02/24/ubuntu-using-ldapsearch-to-query-against-a-secure-windows-domain-controller/", "published_at": "2021-02-24T19:16:26+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa91d30e9", "title": "Bash: using multiple values from an input pipeline to construct and execute a command", "url": "https://fabianlee.org/2021/02/24/bash-using-multiple-values-from-an-input-pipeline-to-construct-and-execute-a-command/", "published_at": "2021-02-24T14:54:26+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaa9ea196a", "title": "Python: exploring the use of startswith against a list: tuple, regex, list comprehension, lambda", "url": "https://fabianlee.org/2021/02/20/python-exploring-the-use-of-startswith-against-a-list-tuple-regex-list-comprehension-lambda/", "published_at": "2021-02-20T19:45:19+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaaa3ef989", "title": "Kubernetes: deleting all evicted pods using kubectl", "url": "https://fabianlee.org/2021/02/19/kubernetes-deleting-all-evicted-pods-using-kubectl/", "published_at": "2021-02-19T17:45:37+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaaa999858", "title": "Ubuntu: Extending capacity of an LVM volume group using an existing or new disk", "url": "https://fabianlee.org/2021/02/19/ubuntu-extending-capacity-of-an-lvm-volume-group-using-an-existing-or-new-disk/", "published_at": "2021-02-19T06:34:52+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaaaac6986", "title": "Bash: Determining latest github release tag and version", "url": "https://fabianlee.org/2021/02/16/bash-determining-latest-github-release-tag-and-version/", "published_at": "2021-02-16T15:30:59+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaab8a0051", "title": "Terraform: Using non-authoritative resources to avoid IAM membership dependency web", "url": "https://fabianlee.org/2021/02/05/terraform-using-non-authoritative-resources-to-avoid-iam-membership-dependency-web/", "published_at": "2021-02-05T15:29:31+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaabd12a31", "title": "GCP: retrieving the full subnet qualification from a shared VPC network", "url": "https://fabianlee.org/2021/02/05/gcp-retrieving-the-full-subnet-qualification-from-a-shared-vpc-network/", "published_at": "2021-02-05T14:29:20+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaabd73e1b", "title": "Ansible: cloning a git repository that requires credentials", "url": "https://fabianlee.org/2021/02/03/ansible-cloning-a-git-repository-that-requires-credentials/", "published_at": "2021-02-03T20:35:38+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaaca28d0f", "title": "GCP: Using gcloud to create and configure a service account", "url": "https://fabianlee.org/2021/01/30/gcp-using-gcloud-to-create-and-configure-a-service-account/", "published_at": "2021-01-30T12:32:37+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaad985efd", "title": "GCP: Analyzing members of IAM role using gcloud filtering and jq", "url": "https://fabianlee.org/2021/01/29/gcp-analyzing-members-of-iam-role-using-gcloud-filtering-and-jq/", "published_at": "2021-01-29T14:10:45+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaae452cd9", "title": "KVM: creating and reverting libvirt external snapshots", "url": "https://fabianlee.org/2021/01/10/kvm-creating-and-reverting-libvirt-external-snapshots/", "published_at": "2021-01-10T12:41:53+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaae62163f", "title": "Bash: grep with LookBehind and LookAhead to isolate desired text", "url": "https://fabianlee.org/2021/01/09/bash-grep-with-lookbehind-and-lookahead-to-isolate-desired-text/", "published_at": "2021-01-09T18:52:29+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaae6e1c39", "title": "Ansible: Login to Ubuntu with Windows Active Directory using SSSD", "url": "https://fabianlee.org/2021/01/07/ansible-login-to-ubuntu-with-windows-active-directory-using-sssd/", "published_at": "2021-01-07T15:34:24+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaae7a20b9", "title": "Ansible: regex capture groups with lineinfile to preserve yaml indentation", "url": "https://fabianlee.org/2021/01/03/ansible-regex-capture-groups-with-lineinfile-to-preserve-yaml-indentation/", "published_at": "2021-01-03T20:12:10+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaae7e495f", "title": "Ansible: lineinfile with regex to robustly populate key/value pairs in config file", "url": "https://fabianlee.org/2021/01/03/ansible-lineinfile-with-regex-to-robustly-populate-key-value-pairs-in-config-file/", "published_at": "2021-01-03T15:34:45+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaae868618", "title": "Bash: deep listing the most recently modified files in a directory", "url": "https://fabianlee.org/2020/12/24/bash-deep-listing-the-most-recently-modified-files-in-a-directory/", "published_at": "2020-12-24T11:57:21+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaaed7b6d2", "title": "Git: Incorporating multiple pull requests from the main project into your fork", "url": "https://fabianlee.org/2020/11/23/git-incorporating-multiple-pull-requests-from-the-main-project-into-your-fork/", "published_at": "2020-11-23T01:09:26+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaaf0f56b5", "title": "Git: Identifying files that .gitignore is purposely skipping", "url": "https://fabianlee.org/2020/11/22/git-identifying-files-that-gitignore-is-purposely-skipping/", "published_at": "2020-11-22T19:16:43+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaafa49cf5", "title": "Bash: Fixing an ASCII text file changed with Unicode character sequences", "url": "https://fabianlee.org/2020/11/18/bash-fixing-an-ascii-text-file-changed-with-unicode-character-sequences/", "published_at": "2020-11-18T16:11:56+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaafbcda89", "title": "Ubuntu: Using add-apt-repository with a proxy", "url": "https://fabianlee.org/2020/11/16/ubuntu-using-add-apt-repository-with-a-proxy/", "published_at": "2020-11-16T14:21:37+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab0148d88", "title": "Bash: Sharing a terminal screen among users with tmux", "url": "https://fabianlee.org/2020/11/15/bash-sharing-a-terminal-screen-among-users-with-tmux/", "published_at": "2020-11-15T20:09:04+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab0f8636c", "title": "CloudFoundry: Determining buildpack used by application", "url": "https://fabianlee.org/2020/10/20/cloudfoundry-determining-buildpack-used-by-application/", "published_at": "2020-10-20T16:57:06+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab11118b6", "title": "Bash: Using logic expressions as a shorthand for if-then-else control", "url": "https://fabianlee.org/2020/10/14/bash-using-logic-expressions-as-a-shorthand-for-if-then-else-control/", "published_at": "2020-10-14T02:59:33+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab172ca3c", "title": "Python: Publishing and Consuming from RabbitMQ using Python", "url": "https://fabianlee.org/2020/09/12/python-publishing-and-consuming-from-rabbitmq-using-python/", "published_at": "2020-09-12T22:30:36+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab20c6107", "title": "Python: Examples of list comprehension", "url": "https://fabianlee.org/2020/09/07/python-examples-of-list-comprehension/", "published_at": "2020-09-07T23:24:30+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab2656798", "title": "RabbitMQ: Deleting a ghost queue that cannot be removed at the GUI/CLI", "url": "https://fabianlee.org/2020/09/07/rabbitmq-deleting-a-ghost-queue-that-cannot-be-removed-at-the-gui-cli/", "published_at": "2020-09-07T13:57:55+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab2c91e9a", "title": "Bash: output all lines before/after line identified by regex", "url": "https://fabianlee.org/2020/09/06/bash-output-all-lines-before-after-line-identified-by-regex/", "published_at": "2020-09-06T22:19:13+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab2fade9a", "title": "Bash: Difference between two arrays", "url": "https://fabianlee.org/2020/09/06/bash-difference-between-two-arrays/", "published_at": "2020-09-06T20:51:58+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab394f2b0", "title": "Ubuntu: Adding a root certificate authority", "url": "https://fabianlee.org/2020/03/27/ubuntu-adding-a-root-certificate-authority/", "published_at": "2020-03-27T22:13:41+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab39f0e5d", "title": "Bash: Examining each certificate in a yaml file using sed and openssl", "url": "https://fabianlee.org/2020/03/24/bash-examining-each-certificate-in-a-yaml-file-using-sed-and-openssl/", "published_at": "2020-03-24T03:11:37+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab489f83b", "title": "KVM: Testing cloud-init locally using KVM for a RHEL cloud image", "url": "https://fabianlee.org/2020/03/22/kvm-testing-cloud-init-locally-using-kvm-for-a-rhel-cloud-image/", "published_at": "2020-03-22T13:12:32+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab565ac10", "title": "Linux: Introducing latency and packet loss into network for testing", "url": "https://fabianlee.org/2020/03/17/linux-introducing-latency-and-packet-loss-into-network-for-testing/", "published_at": "2020-03-17T05:18:37+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab637439e", "title": "KVM: Testing cloud-init locally using KVM for a CentOS cloud image", "url": "https://fabianlee.org/2020/03/14/kvm-testing-cloud-init-locally-using-kvm-for-a-centos-cloud-image/", "published_at": "2020-03-14T19:30:40+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab6a67e7a", "title": "KVM: Testing cloud-init locally using KVM for an Ubuntu cloud image", "url": "https://fabianlee.org/2020/02/23/kvm-testing-cloud-init-locally-using-kvm-for-an-ubuntu-cloud-image/", "published_at": "2020-02-23T18:17:34+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab6fecdeb", "title": "KVM: Terraform and cloud-init to create local KVM resources", "url": "https://fabianlee.org/2020/02/22/kvm-terraform-and-cloud-init-to-create-local-kvm-resources/", "published_at": "2020-02-22T12:26:37+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab7e50594", "title": "Bash: Associative array initialization and usage", "url": "https://fabianlee.org/2020/02/15/bash-associative-array-initialization-and-usage/", "published_at": "2020-02-15T16:42:28+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab86ee7a6", "title": "Bash: Appending to existing values using sed capture group", "url": "https://fabianlee.org/2020/02/09/bash-appending-to-existing-values-using-sed-capture-group/", "published_at": "2020-02-09T17:12:53+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aab96ae2e1", "title": "Bash: Using BASH_REMATCH to pull capture groups from a regex", "url": "https://fabianlee.org/2020/01/29/bash-using-bash_rematch-to-pull-capture-groups-from-a-regex/", "published_at": "2020-01-29T23:06:59+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaba0e4a43", "title": "Bash: Renaming files using shell parameter expansion", "url": "https://fabianlee.org/2020/01/29/bash-renaming-files-using-shell-parameter-expansion/", "published_at": "2020-01-29T14:07:03+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aaba39c60a", "title": "GoLang: Go modules for package management during a multi-stage Docker build", "url": "https://fabianlee.org/2020/01/29/golang-go-modules-for-package-management-during-a-multi-stage-docker-build/", "published_at": "2020-01-29T11:42:32+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aabb1ddcb4", "title": "GoLang: Using multi-stage builds to create clean Docker images", "url": "https://fabianlee.org/2020/01/26/golang-using-multi-stage-builds-to-create-clean-docker-images/", "published_at": "2020-01-26T21:45:21+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aabba8d7f8", "title": "GoLang: Installing the Go Programming language on Ubuntu", "url": "https://fabianlee.org/2020/01/24/golang-installing-the-go-programming-language-on-ubuntu/", "published_at": "2020-01-24T03:14:12+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aabc747e87", "title": "Docker: Working with local volumes and tmpfs mounts", "url": "https://fabianlee.org/2020/01/24/docker-working-with-local-volumes-and-tmpfs-mounts/", "published_at": "2020-01-24T03:00:50+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aabcb2dc80", "title": "Bash: Using shell or environment variables in awk output", "url": "https://fabianlee.org/2020/01/19/bash-using-shell-or-environment-variables-in-awk-output/", "published_at": "2020-01-19T12:44:56+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aabd53a08a", "title": "Docker: Placing limits on cpu usage in containers", "url": "https://fabianlee.org/2020/01/19/docker-placing-limits-on-cpu-usage-in-containers/", "published_at": "2020-01-19T05:01:37+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aabdd6a95b", "title": "Docker: Placing limits on container memory using cgroups", "url": "https://fabianlee.org/2020/01/18/docker-placing-limits-on-container-memory-using-cgroups/", "published_at": "2020-01-18T21:53:41+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aabe889642", "title": "Bash: Skipping lines at the top or bottom of a stream", "url": "https://fabianlee.org/2020/01/18/bash-skipping-lines-at-the-top-or-bottom-of-a-stream/", "published_at": "2020-01-18T02:02:29+00:00" }, { "id": "01a0c526-cf86-73ae-9437-03aabedb7f01", "title": "Linux: Outputting single quotes in awk output", "url": "https://fabianlee.org/2020/01/15/linux-outputting-single-quotes-in-awk-output/", "published_at": "2020-01-15T13:11:23+00:00" } ] posts Claim your blog
Back to fabianlee.org
Blog · corpus.blog/blogs/fabianlee.org/posts

fabianlee.org

fabianlee.org

2021

2020