カテゴリー: 技術系memo

  • Nginxに中間CA証明書をインストールするときの注意

    Nginxは、サーバ証明書を1つしか設定できない。そのため、中間CA証明書を指定しなければならない場合は、1つのファイルに複数の証明書を記述する。

    このとき、中間CA証明書は、サーバ証明書の後に、中間CA証明書を指定する。中間CA証明書を最初に記述すると、エラーになるので、注意が必要。

  • Capistranoとは

    Capistrano(カピストラーノ)は、複数のリモートサーバでスクリプトを実行するためのツール。MIT LicenseのOSS。

    Capistranoは、Rubyでかかれており、Ruby on Railsなどのウェブアプリケーションのデプロイツールとして利用される。Rubyでかかれているが、デプロイ対象はPHPなどでも構わない。Ruby on Railsなどは、Gitリポジトリと結びつけて、デプロイの自動化を行うことが多いようだ。

    https://capistranorb.com/

  • Veeam backupでタイムアウトでバックアップが取れない

    Veeam backupで、Linuxにエージェントをインストールして、バックアップを動作させたところ、バックアップがエラーになった。Veeam backup上でエラーメッセージを確認したところ、下記のエラーが出ていた。

    veeam.backup.SSH.CSshTimeoutException
    

    原因を調べていたところ、最初の通信は、SSHで行っているが、データ転送などは別のポートを使っていることがわかった。ポートの10006を使用しているが、エージェントとバックアップサーバの間のファイアウォールで、10006は許可していないため、タイムアウトしているようだ。たぶん、このポートを解放すればよいのだが、さてどうするか。

    Linux Agent  TCP 10006
    Windows Agent TCP 10005
    

    Veeam Backupが利用しているポート番号
    https://helpcenter.veeam.com/docs/backup/agents/used_ports.html?ver=95u4

  • UbuntuでSSHでログイン時に表示されるメッセージを追加する

    Ubuntuは、ログイン時に、下記のディレクトリにあるスクリプトを実行する。このフォルダに、実行できるシェルシェルスクリプトとして、記載することでログイン時のメッセージを表示させることができる。

     /etc/update-motd.d/

    たとえば、下記のような形で、メッセージを表示するスクリプトを書いて実行させる。

    ~$ cat /etc/update-motd.d/99-hostinfo
    #!/bin/sh
    printf "\n";
    printf "##############################################\n";
    printf "#  WEB Server Production Enviroment     #\n";
    printf "##############################################\n";
    printf "\n";
    
  • G SuiteでGoogle Cloud Platformを使う設定、使わせない設定

    G Suiteのユーザで、Google Cloud Platformを使う設定、および使わせない設定を行うには、G Suiteの管理画面で、「Google Cloud Platform」のサービスをオン/オフする。

    1. G Suiteの管理者で、G Suiteの管理画面にログインする。
    2. 「アプリ」を選択する。
    3. 「その他のGoogleサービス」を選択する。
    4. 「Google Cloud Platform」を選択する。
    5. 組織単位、または全体で、サービスのオン/オフを行う。
  • EC2のインスタンスを起動させたら、ELB経由でアクセスすると503エラーになる

    AWSのELBで経由でSSL接続していたEC2のインスタンスを起動させたところ(ちょっと使わない期間があったので停止してた)、ELB経由でアクセスすると、503エラーを返すようになった。503エラーなので、EC2のウェブコンテンツは表示されない状態だ。

    設定を見直し整理してみると・・・

    • EC2のインスタンスを起動したら、503エラーに。前は表示できていた。
    • ELBは、マニュアルに従い、2つのアベイラビリティゾーンを指定。
    • EC2のインスタンスは、2つのアベイラビリティゾーンのうち、1つに属する。
    • ELBのキープアライブは、EC2のインスタンスが使用していないアベイラビリティゾーンを見ているっぽい。

    という状況だった。

    使っていないアベイラビリティゾーンからアクセスをしようとして、キープアライブが取れず、アクセスすると503エラーになっている模様。このような状況なので、可用性は下がるが(というかどうせ動いていない)、使用していないアベイラビリティゾーンの設定をELBから削除した。これにより正常にSSL経由でウェブが表示されるようになった。

    ELBを使って、AmazonのSSL証明書を使うときは、EC2側がシングル構成だったりするので注意が必要。

  • Cloud ShellからCloudSQLに接続で403エラーになる

    GCP(Google Cloud Platform)で、Cloud Shellから、Cloud SQLに接続しようとすると、403エラーになり、接続できない。GCPでプロジェクトを共有しているユーザごとに、エラーになるユーザと、正常に接続できるユーザがいる(ので、Cloud SQLのサービスの問題ではない)。原因は、CGPのIAMの設定の不備。

    接続がエラーのとき

    zen@cloudshell:~ (devPJ)$ gcloud sql connect devDB --user=conusr
    ERROR: (gcloud.sql.connect) HTTPError 403: The client is not authorized to make this request.
    zen@cloudshell:~ (devPJ)$
    

    接続に成功するとき(MySQLのユーザ認証は別)

    zen@cloudshell:~ (devPJ)$ gcloud sql connect devDB --user=conusr
    Whitelisting your IP for incoming connection for 5 minutes...⠼     
    

    対処

    Clolud Shellから、Cloud SQLに接続するには、GCPのIAMで、「Cloud SQL 編集者」の権限をつける必要がある。閲覧者だと、Cloud Shellからは接続できず、403エラーが発生する。

  • Ubuntu19.04にGitlabをインストールしようとするとエラーになる

    Ubuntu19.04にGitlabをインストールしようとすると「E: パッケージ gitlab-ce が見つかりません」とエラーになる。

    ~$ sudo EXTERNAL_URL="http://localhost" apt install gitl
    ab-ce
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    E: パッケージ gitlab-ce が見つかりません
    

    状況を調べたところ、インストール時に下記のコマンドを実行したが、apt(apt-get)先に登録されていなかった。

    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash 
    

    gitlabの対応OSが、Ubuntu16.04とUbuntu18.04で、Ubuntu19.04が入っていないので、ここではじかれているものと思われる。色気を出さずに、Ubuntu18.04で同じことを試したところ、あっさりとgitlabのインストールができた。そのため、対応OSのバージョン不一致が原因。

  • GitLab Community Edition 12.3.3のデータの場所

    Ubuntu 18.04にインストールしたときのGitLab Community Edition 12.3.3 のデータの保存先など。

    データベースやgitのリポジトリのデータなど。

    /var/opt/gitlab
    

    アプリケーションのインストール先。

    /opt/gitlab
    
  • VS Codeを起動させるコマンド

    コマンドプロンプト(cmd)やPowershellで、「code」を実行すると、Visual Studio Codeが起動する。

    「ファイル名を指定して実行」(Windowsキー + R)からも、「code」でVisual Studio Codeが起動する(実際には、cmdが開いて実行されて、VScodeが開く)。