Sign inSign up

rhemsjapan/hosts-creator

By rhemsjapan

•Updated over 3 years ago

Image
0

100K+

rhemsjapan/hosts-creator repository overview

dockerhub

sequenceDiagram
  participant nginx
  participant py-hosts-creater
  critical ① 初期設定
  Note over py-hosts-creater: configのmount(/etc/create_hosts/config) TTL設定など
  Note over py-hosts-creater: hosts_listのmount(/etc/create_hosts/hosts_list) 解決したいアドレスリスト
  nginx->>py-hosts-creater: ※/etc/hostsは同じものを参照している
  Note over py-hosts-creater: /etc/hostsを/etc/create_hosts/にbase_hostsとしてコピーする
  Note over py-hosts-creater: 【GET_RDS_ENDPOINT】Trueならrds_hosts_listに設定されたクレデンシャルのRDSのエンドポイントを列挙する

  end
  loop ② CREATE_HOST_TTL秒の間隔で実行
  Note over py-hosts-creater: base_hostsから編集用のファイルhostsをコピーして作成
  Note over py-hosts-creater: hostsファイルを開く
  Note over py-hosts-creater: hosts_listを開く
  Note over py-hosts-creater: hosts_listを1行ずつ名前解決し、成功したらhostsに追記する
  Note over py-hosts-creater: 【GET_RDS_ENDPOINT】rds_hosts_listを開く
  Note over py-hosts-creater: 【GET_RDS_ENDPOINT】rds_hosts_listを1行ずつ名前解決し、成功したらhostsに追記する

  Note over py-hosts-creater: 全て名前解決成功し終えたら、/etc/hostsに上書きコピーする
  py-hosts-creater->>nginx: ※nginxのhostsも更新される
  Note over py-hosts-creater: hostsファイルのvalidate
  end

⁠setting.ini

example

[DEFAULT]
TTL = 10
GET_RDS_ENDPOINT = True
GET_REDIS_ENDPOINT = True

[RDS]
CLOUD_ENV = aws
SELECT_TAG_KEY = 
SELECT_TAG_VALUE = 

[REDIS]
CLOUD_ENV = aws
SELECT_TAG_KEY = 
SELECT_TAG_VALUE = 

paramdescriptiondefaultNote
TTL何秒間隔でhostsを書き換えるか10config.ini > 環境変数($CREATE_HOST_TTL)の優先順位。いずれも見つからない場合にデフォルト値を利用する
GET_RDS_ENDPOINTRDSのendpointを取得するかどうかFalsetrue/falseの文字列で大文字小文字は問わない。true以外ならfalse扱い
GET_REDIS_ENDPOINTRedisのendpointを取得するかどうかFalse〃(※GET_RDS_ENDPOINTと同様)
CLOUD_ENVRDSのクラウドサービスの種類。現状AWSのみaws大文字小文字は問わない。誤った文字列を指定するとPodは終了する
SELECT_TAG_KEYrdsに設定されたタグのkey名。指定しない場合は空にする
SELECT_TAG_VALUErdsに設定されたタグのvalue名。指定しない場合は空にする

IAM roleでやる場合は

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:DescribeDBInstances",
                "elasticache:DescribeCacheClusters",
                "elasticache:ListTagsForResource"
            ],
            "Resource": "*"
        }
    ]
}

Tag summary

Content type

Image

Digest

sha256:8892807dc…

Size

49.5 MB

Last updated

over 3 years ago

docker pull rhemsjapan/hosts-creator