rand(Ø)

> beautiful code & photos

about <

Posts tagged: sys-admin

Cross-region & cross-account AWS resources Terraform planning

Hey, it's been a while, right?

Lately, I'm leading some big changes in our infrastrure since I'm wrapping a Blue/Green deployment into another one. Uh?

Long story short: our product runs on AWS ECS Docker containers, and because we have one sub-domain per app instance, we use Apache wildcard sub-domains. Meaning a single container handles traffic from many clients/instances. We already have a Blue/Green deployment process in place but at the Docker container level, not at the client level. The idea is to entirely duplicate the whole stack (with all its flaws) and a sub-domain pointing to

> Continue Reading

CSP Header Hacking for Apache2

Hello,

I write here to report my latest dirty hack. Story—

While enforcing our HTTP server configuration at work, we are slowly implementing CSP policies and one of them allow Web browsers to report violations to a given endpoint.

At this moment, we are only at the reporting step of the implementation because the first time we attempted to roll this header out, it ended up breaking our staging env.

So, it's recommended to set the Content-Security-Policy-Report-Only header.

This header takes the report-uri directive which allows the browser to push the violation findings to a given endpoint.

For this example:

> Continue Reading

S3: List objects using filters

One thing that really sucks about the Amazon S3 command is not being able to efficiently list objects using the exclude and include filters.

I recently had a case when I needed to list GZip archives from one of our S3 buckets but only the ones ending by .gzip.

Since the ls command doesn't support filters (yet?), I found another way to get that listing: use the cp command, but in dry-run mode:

#!/bin/bash
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=

# Very important: DO NOT remove the --dryrun flag!
aws s3 cp s3://bucket-name . --recursive --no-progress
> Continue Reading

PHP: Compile a PECL extension in 64 bits when your compiler runs 32 bits

At my job, I use a Solaris distribution as a development server and the package manager doesn't propose the Xdebug package so I need to use the PECL command, which is fine. But, the PECL manager uses the system compiler which compiles binaries with 32 bits flags although my LAMP stack is 64 bits linked.

No other choice to compile manually my extension and after a few hours of hell (yes, I'm not a C pro :cwy:), I found how to compile correctly my extension.

So, if one day you need to compile a PHP extension in a different architecture,

> Continue Reading

Git: Créer des dépôts privés sur du mutualisé

Si vous lisez régulièrement mon blog, vous devriez savoir que j'ai rompu avec 1&1 et que je suis désormais chez OVH.

Etant donné que je me suis encore un peu plus intéressé à Git ces derniers temps, je me suis dit qu'il serait vraiment cool d'avoir des dépôts privés parce qu'entre nous, les prix sont un peu trop reuch sur Github.. ahem. Du coup, j'ai tenté le truc : pourquoi ne pas avoir des dépôts Git sur mon hébergement mutualisé ?

Finalement, en cherchant à droite à gauche sur Web, je me suis rendu compte que c'était assez simple et

> Continue Reading

Installation d'Ubuntu avec PXE sous Mac

J'ai eu entre les mains un PC portable tellement vieux et dépravé que plus aucun périphérique possiblement bootable était disponible.
Donc plus de lecteur optique et le BIOS est trop vieux pour booter en USB. La seule solution possible restait l'amorçage par la carte réseau (PXE). Bonne opportunité pour tester Ubuntu Karmic Koala.

C'est avec grande surprise que cette page ne m'a presque pas servie puisque rien ne ressemblait à ce que j'avais de mon côté. Par exemple, je n'ai jamais eu besoin de bind9...

Amorcer avec PXE

Le but de l'amorçage avec PXE est d'automatiser les installations sur des

> Continue Reading