投稿

DockerでBIND9動かしてみた

 SambaのDocker化作業の一環で急遽 BIND のコンテナが必要になったのでコンテナイメージを探していたけれど見つからないので適当なものを自分で準備したよ。と言っても相変わらずのコピペですが。一応Ubuntu20.04LTSで最新版のBIND9を引いてくるようにはしたつもりです。一応意図していることはできている模様。そしていよいよ本丸に突入する ■設定ファイル関連 ・Dockerfile ------------------------------------------------- FROM ubuntu:latest ENV DEBIAN_FRONTEND noninteractive # Bind install RUN apt-get update && apt-get upgrade -y && \ apt-get install -y tzdata vim dnsutils bind9 bind9utils supervisor # Setup shell ADD init.sh /init.sh RUN chmod 755 /init.sh CMD /init.sh setup ------------------------------------------------- ・init.sh ------------------------------------------------- #!/bin/bash set -e # utility function get_host_ip(){ dnsarray=($(echo $1 | tr "." "\n")) echo ${dnsarray[3]} } function get_reverse_ip(){ iparray=($(echo $1 | tr "." "\n")) str="${iparray[2]}.${iparray[1]}.${iparray[0]}" echo ${str} } function appStart(){ /usr/bin/supervisor...

Azureのストレージ共有にPostgreSQLのデータファイルを移動してRedmineを動かしてみた

前回 はAzureでDocker使ってRedmineを立ち上げていましたがDBが Azure Files に移せなくて無念だったというお話でしたがそれ 以前の単純構成 を踏まえてRedmineの添付ファイルとPostgreSQLのDBをストレージ共有に保存しつつRedmineを立ち上げてみるというバカバカしい実験をしてみました。よい子は決して真似しないでください。ドメインは freenom で取得して AzureDNS にドメインを登録しておけばお手軽に独自ドメインのRedmine立ち上げられます。 で動かしてみているのですが、やはり少しレスポンス悪いかも・・・。まぁまだデータ投入とかしていないので、少し遊んでみてから評価かと思います。 しかしながら、おカネを持っておられるところは素直に マネージドのデータベース をバックエンドにした方がいいかと思います。 ■作業概要 1.イメージ展開 2.Azure Filesのマウント 3.PostgresSQLインストール 4.nginxインストール・https化 5.Rubyほか必要ツール類インストール 6.Redmine導入 7.Rubyおよびnginx関連設定 ■作業手順 1.イメージ展開 ①イメージギャラリーからイメージを選択 ②VMの作成でVMを作成する ③VM展開後にsudo可能ユーザのパスワードリセットを行う ④セキュリティ規則でhttpsとhttpのアクセス許可を受信セキュリティ規則にて追加する 2.Azure Filesのマウント #①環境変数設定 $ export AZUREFILES_RGN="yourresource" $ export AZUREFILES_SA="myredmine" $ export AZUREFILES_FSN="redmine-file" $ export AZUREFILES_MNT="/mnt/$AZUREFILES_SA/$AZUREFILES_FSN" $ export AZUREFILES_DB_FSN="redmine-database" $ export AZUREFILES_DB_MNT="/mnt/$AZUREFILES_SA/$AZUREFILES...

DockerでAD-Samba構築【その1】

イメージ
 5年ほど前に SambaでActiveDirectoryを組む という使い古されたことをやっていたけど、5年ぶりにSamba作ってみるかということで色々と調べたけれども、世の中はもはやDockerということで ここ のほぼまるまる100%コピペでやりました。まぁ相変わらずダメダメなので仕方ないです。 ちなみにそのままコピペだとWindowsでドメインログオンしたときに外部のネット接続できないとか色々とあって一筋縄でいかなかったり多少、嵌りました(自分がへぼいからです)。これまた先人のお知恵を拝借してローカルにイメージコピーしてきてShellスクリプトいじくって無事にドメイン参加状態でWindowsからネットつながるところまでは参照できました。 構築イメージは↓こんな感じです。NICにIPアドレスを1つ追加してDockerのSamba-ADと通信する場合は追加IPを経由して通信するという構成となります。 ◆構築手順 1.ホスト側設定変更 #IPアドレス変更 $ sudo vi /etc/netplan/00-installer-config.yaml --------------------------- # This is the network config written by 'subiquity' network: ethernets: eth0: addresses: - 192.168.0.10/16 #変更 - 192.168.0.11/16 #追加 gateway4: 192.168.0.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 - 192.168.0.1 version: 2 --------------------------- $ sudo netplan apply #ホスト名変更 $ sudo hostnamectl set-hostname hostsrv.yourdomain $ sudo vi /etc/cloud/cloud.cfg --------------------------- # This will cause t...

Azureの「ストレージ共有」使ってDockerでRedmineしてみた

Azureの仮想マシンを使って単純な構成 で EC2のときの様に1台構成 で Redmine鯖 を構築してみたけれども、 前回Dockerを使ってRedmineを構築 して少し目覚めた。 AWSの場合はS3※にDBのストレージをマウントして運用しようとするととても実用に耐えないですがAzureの場合は AzureFiles とかいうのがあってなんか EFS より安そうに見えたのと速度試してみて、もしかしてDBのストレージ乗せれば小規模レベルなら格安でストレージ気にしなくてRedmine運用できんじゃねとか思ったので試してみました。 #2021/6/3: 添付ファイルとプラグインはAzureFilesに逃がせましたが、どうやってもDBの方は逃がせませんでした。どなたか、DBを逃がすよい手立てありましたらご教示くださると幸甚です。 https://stackoverflow.com/questions/64973111/how-to-mount-a-docker-volume-in-azure-with-docker-compose-yaml ひとまず VMのB1s と AzureFiles という組み合わせです。むちゃくちゃ速度があれだったのでAWSではこういう組み合わせをしようという気すら起きない・・・。  ◆構築手順 1.OSイメージ展開後の注意  ①イメージギャラリーからイメージを選択  ②VMの作成でVMを作成する  ③VM展開後にsudo可能ユーザのパスワードのリセットを行う。 2.AzureDNS設定  ①DNSゾーンを作成する  ②該当ゾーンに仮想マシンのグローバルIPを設定したAレコードを作成する 3.Dockerインストール #https経由のaptリポジトリ許可 $ cd $ sudo apt update $ sudo apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common #DockerCEインストール $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $...

DockerでRedmineを一気に作成(オレオレ証明書Version)

 もはやなんの新鮮味もない DockerでRedmine を構築しました的な記事です。その辺に雨後の筍みたいに生えているし、いまさら自分が書いても仕方ないんですが、 AWSで構築しました とか Azureで構築しました 的なところで満足できなくなり、ようやく Docker に手を出したわけです。もっと早く手を出しておけよだからダメなんだよ自分というのが感想です。1回作ればもはや何もしなくていいレベルっぽい位に楽です。 ここ のコピペです。リンク先のみてやってもらった方が確実かもです。ちなみにホストOSにはDockerインストール済でないと動かないですよ。ちなみに参照元と違うのがファイルを1まとめにしたのと オレオレ証明書 で使用できるようにしてお手軽に試せるようにしたとこ位です。IPアドレスでアクセスしてそのまま使用できるところを目指しました。 ◆対象Version Ubuntu20.04LTS Docker version 20.10.6, build 370c289 docker-compose version 1.29.1, build c34c88b2 ◆作業手順 1.事前準備(IP固定化等)、ホストOSで実行 #IPアドレス変更 $ sudo vi /etc/netplan/00-installer-config.yaml --------------------------- # This is the network config written by 'subiquity' network: ethernets: eth0: addresses: - 192.168.1.20/24 #変更 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 - 192.168.1.1 version: 2 --------------------------- $ sudo netplan apply #ホスト名変更 $ sudo hostnamectl set-hostname redmine.example.c...

AzureのVMでRedmine構築

前回 はAWSでRedmineを構築しましたが今回はAzureのVMサービスでRedmineを構築してみました。手順自体は前回とそんな変更ないです。GitからRedmineのソースをcloneしてくるようにしたくらいです。AzureのVMはAWSほど気軽に使える値段でないので少しコスト面で怖い部分もありますが、これから徐々に慣れていきたいところです。 リストアが試せていないので時間あるときに試してみたいです。 *仮想マシンを復活させるだけなのでスムーズなはず。。。 大枠の手順は以下の通り Ⅰ.OSイメージ作成 Ⅱ.OSイメージ更新 Ⅲ.Redmine構築 Ⅳ.仮想マシンのバックアップ ◆作業手順 Ⅰ.OSイメージ作成 #1.初期設定 #1-1.日本語化 $ sudo sed -i.bak -e "s%http://us.archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list $ sudo apt-get -y install language-pack-ja-base language-pack-ja ibus-mozc $ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" $ source /etc/default/locale $ echo $LANG ja_JP.UTF-8 #1-2.タイムロケール変更 $ sudo timedatectl set-timezone Asia/Tokyo $ timedatectl #1-3.ソフトウェアアップデート $ sudo apt-get update $ sudo apt-get -y upgrade #1-4.ディストリビューションアップデート $ sudo apt-get -y update $ sudo apt-get dist-upgrade #1-5.デフォルトエディタ変更 $ sudo update-alternatives --config editor alternative editor (/usr/bin/editor を提供) には 4 個の選...

【最終回】静的Webサイトホスティング二重化してみる(その4)

静的Webサイトホスティングパターンの二重化、 前回 から半年近くが経過しました。色々と試行錯誤していてようやく CloudFormation とか DeploymentManager とか Terraform もなれてきたので宿題だった IaC 化にチャレンジしました。 前提条件としてDockerで AWS-CLI とか GoogleCloud-SDK 丸ごと込々の環境を作成できていることが必要になります。とりあえず そちらはDockerでサクッと作りました 。 ほんとはGitHubのところまでできたらよかったんですが、そこはスキルがなくてヨワヨワなのでここまでが限界でした。ひとまず静的Webサイトホスティングパターンはここまでで最後です。ようやく昨年からの懸案事項解決できました。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:GoocleCloudでLoadBaranser+GCS構成を作りDNSでフェイルオーバ その3:S3とGCSにGitHubActions使ってコンテンツ同期 その4:TerraformでIaC化 ◆設定作業編 1.Docker内初期設定 (1)AWS初期設定 #コンテナログイン $ docker exec -it terraform-dev /bin/bash #AWS認証情報 # aws configure AWS Access Key ID [None]: INPUTACCESSKEY AWS Secret Access Key [None]: INPUTSECRETACCESSKEY Default region name [None]: ap-northeast-1 Default output format [None]: json #環境変数設定 # cd ~/terraform/ # export TF_VAR_access_key="ACCESSKEY" # export TF_VAR_secret_key="SECRETACCESSKEY" # export TF_VAR_role_arn="ROLE/ARN" (2)GCP認証情報 #初期設定 # gcloud init Welcome! This command will ta...