Skip to content

Instantly share code, notes, and snippets.

@shichi-at-nttr
shichi-at-nttr / _SonarQube-on-Docker.md
Last active May 22, 2024 11:49
SonarQube on Docker (データを永続化して使う)

静的コード解析ツールSonarQubeをDockerで動かす

Dockerを終了しても解析結果とSonarQubeのプラグイン情報を保持するためのdocker-compose

SonarQubeの起動

docker-compose.yml を置いたディレクトリで以下を実行する。

$ docker-compose up -d

Ansibleにおける一般的なタスクのリトライ処理

shell: の実行結果に基づくリトライ処理などのサンプルはよく見かけるが、 それ以外の各種のtaskがfailしたらリトライする場合のサンプルが見当たらなかったのでメモ。

- name: 何らかの処理とそのリトライ
  XXXXX: name=XXXX state=present
  register: result
  until: result.failed is not defined

retries: 5

@shichi-at-nttr
shichi-at-nttr / _DNS Problem on Docker Swarm Mode with Consul.md
Last active June 11, 2018 00:45
Consulの名前解決機能(DNS機能)をDocker Swarm Modeのコンテナ内でも利用可能とするための設定方法

Docker Swarm ModeでConsulの名前解決を利用する

Ubuntu 16.04 LTS における解決方法のまとめは → こちら

前提

  • Docker Swarmのworkerノード(コンテナホスト)がConsulクラスタに組入れられている
  • workerノード上ではdnsmasqが動いていて、ノード上では「consul.service.consul」的な名前が解決可能である
  • Docker version 17.06.2-ce

目的

@shichi-at-nttr
shichi-at-nttr / _README.md
Last active November 9, 2017 01:23
redis-trib.rbでRedisクラスタを構築するAnsibleプレイブック

AnsibleによるRedisクラスタの構築

前提と目的

  • 個々のRedisノードは構築済みとする
    • それぞれ別ノードとし、同一ポートでredisが起動している
  • ansibleを使ってRedisクラスタを構築する
  • クラスタ構築には redis-trib.rb を用いる  - Rubyをインストールし、/usr/local/bin/redis-trib.rb にリンクしておく

具体的には

@shichi-at-nttr
shichi-at-nttr / _README.md
Last active August 18, 2023 11:21
Consul環境下でのRabbitMQのクラスタ構築

Consul環境下でのRabbitMQのクラスタ構築

目的

  • /etc/hosts を書かずにRabbitMQのクラスタを構築したい
  • ansibleを使ってクラスタ化まで実行したい

前提

  • RabbitMQの各ホストがConsulで名前解決できる状態にある   - 例えば node01.node.consulnode02.node.consul として個別ホストにアクセスできる
    • サービスとしては rabbitmq.service.consul としてアクセスできる
@shichi-at-nttr
shichi-at-nttr / use_RabbitMQ3.7_with_Ansible2.4.md
Last active December 22, 2017 06:57
Ansible2.4でRabbitMQ3.7を構成する際のrabbitmq_policyエラー回避方法

目的

Ansible 2.4 から RabbitMQ 3.7 のポリシーを構成をするにあたり、 RabbitMQ 3.6 までは発生しなかったエラーを回避するために macOS上のansibleにパッチを当てる。

修正箇所

  • パス: /usr/local/Cellar/ansible/2.4.2.0_1/libexec/lib/python2.7/site-packages/ansible/modules/messaging
  • ファイル: rabbitmq_policy.py
@shichi-at-nttr
shichi-at-nttr / _consul.service_file_at_ubuntu_18.04_bionic.md
Created April 9, 2018 13:37
Ubuntu 18.04 LTS での Consul起動用 consul.service

consul.serviceファイルの ExecPre= 行を変更する。

この行を

ExecStartPre=[ -f "/run/consul/consul.pid" ] && /usr/bin/rm -f /run/consul/consul.pid

こう変更する。

ExecStartPre=/bin/echo "[ -f /run/consul/consul.pid ] && /bin/rm -f /run/consul/consul.pid" | /bin/sh -s
@shichi-at-nttr
shichi-at-nttr / DockerSwarm+Consul+Dnsmasq_on_Ubuntu16.04LTS.md
Last active June 11, 2018 00:48
Docker Swarm Mode + Consul + Dnsmasq on Ubuntu 16.04 LTS

Ubuntu 16.04 LTS 上でConsulとDocker Swarm Modeを組み合わせて使う場合のDNS関連設定メモ

発生した事象

  • Dockerのコンテナ内から名前解決ができない
  • 通常のDockerコンテナからは名前解決できるが、Docker Swarm Modeのサービスコンテナからは名前解決できない
  • 一般のドメインは名前解決できるが、Consulサービス名等が名前解決できない

前提

  • Ubuntu 16.04 LTS
  • Docker-CE 18.03
@shichi-at-nttr
shichi-at-nttr / _Ansible_ProxySQL_Causes_Error.md
Last active May 1, 2020 07:52
Handling ProxySQL (>= 1.4.8) with Ansible will result in an error
@shichi-at-nttr
shichi-at-nttr / _README.md
Last active August 7, 2018 13:59
Go言語でクラスタ・非クラスタのRedisを区別なく扱う

Go言語から go-redis でRedisクラスタを使う。

go-redis自体はRedisクラスタに対応しているが、クラスタと非クラスタでは接続の型が異なる。 単純なアクセス部分のアプリケーションは、Redisがクラスタかそうでないかを意識せず書きたい。

接続時のみ、(設定ファイル等からクラスタモードを取得し) 接続方式を変える必要があるが、 interfaceを用いることで、その後のハンドリングはクラスタ/非クラスタを同一に記述するためのサンプル。