「Hook execution failed: SSL_connect returned=1 errno=0 state=error: wrong version number」エラーの解決方法

GitLabのWebhook設定時にSSLコネクションエラーに遭遇。。。
エラー→「Hook execution failed: SSL_connect returned=1 errno=0 state=error: wrong version number
f:id:kyamisama:20210107114114j:plain

原因

推測ですが、今回利用しているGitLabが自前のGitLabでSSL化しておりませんでした。
なのでSSLでのwebhookアクセスが失敗したのでは無いでしょうか。

解決

じゃぁSSL辞めようよ。
と言う事で、webhookのURLの「HTTPS」を「HTTP」に修正しちゃいます。
私の場合これで200OKのレスポンスが返ってきました。
f:id:kyamisama:20210107114427j:plain

GitLabとJenkisの連携時エラー「Urlis blocked: Requests to localhost are not allowed」の解決方法

前置き

今回GitLabとJenkinsを連携させてCI/CDパイプラインを構築した際に出くわしたエラーについての紹介です。
エラーはこちらです。→「Urlis blocked: Requests to localhost are not allowed
f:id:kyamisama:20210107112057j:plain

原因

今回の構成が1台のCentOSマシン上にGitLabとJenkinsを両立させたためアクセス先がローカルホストになってしまったことでした。

解決方法

「GitLabの管理者設定」>「設定」>「ネットワーク」へ進みます。
f:id:kyamisama:20210107112930j:plain
「アウトバウンドリクエスト」タグで「webフックおよびサービスからのローカルネットワークへのリクエストを許可する」にチェックを入れます。
f:id:kyamisama:20210107112940j:plain
以上でエラーが解決されるはずです。

GitLab待ち受けポート変更方法

/etc/gitlab/gitlab.rbの修正

external_urlで指定しているIPアドレスの後ろに任意のポート番号を追記します。
今回は8080番にします。

[root@localhost jenkins]# cat /etc/gitlab/gitlab.rb | grep 8080| head -1
external_url 'http://192.168.250.75:8080'
[root@localhost jenkins]#

設定変更を反映させる

gitlab-ctl reconfigure

正常に反映が完了した場合下記文言が表示される。

           ~略~
gitlab Reconfigured!
[root@localhost jenkins]#

改めてブラウザで8080ポートでアクセスし無事アクセスできることを確認する。

TerraformでOCI インスタンス(CentOS7)を構築してみる

Terraformの記述はHCLで決まっているので大体似たような内容になると思いますけど簡単に紹介させていただきます。
より詳細に知りたい方はこちらをご参照ください。

instnace.tfの中身

resource "oci_core_instance" "instance1" {
    #Required
    availability_domain = "${data.oci_identity_availability_domain.ad1.name}"
    compartment_id      = "${var.compart-ocid}"
    display_name        = "instance1"

    #Optional
    shape               = "${var.instance-shape5}"
    create_vnic_details {
        assign_public_ip = false
        private_ip  = "10.0.1.2"
        subnet_id      = "${oci_core_subnet.subnet.id}"
    }
    source_details {
        source_type = "image"
        source_id   = "ocid1.image.oc1.ap-tokyo-1.aaaaaaaahklxhfmawzo4adpq74egsnjirfh5ttbtkwoael6bgkkivmqmv6ja"
    }
    metadata = {
        ssh_authorized_keys = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQA*******"
    }
}
variable "compart-ocid" {
    default = "ocid1.compartment.oc1..aaaa*****************"
}
variable "instance-shape5" {
    default = "VM.Standard.E2.1"
}

※subnet_idの指定が別ファイルでしているのでここでは割愛させていただきます。
多かれ少なかれ大体こんな書き方になるんじゃないでしょうか。

sql文を一括で実行するスクリプト

以前数百行ほどのSQL分を実行するお仕事があり、チマチマ実行するのも面倒なので一括で実行できる方法が無いかググって簡単な方法があったので紹介したいと思います。

スクリプト中身

[oracle@test ~]$ cat sql.sh
#!/bin/bash
tempsqlfile=./DBCreate.sql
sqlplus system/password#@testdb01 @${tempsqlfile}

DBCreate.sqlに数百行分のSQLを格納している。
あとはこのスクリプトを実行するだけ。

sh sql.sh

これだけ。おしまい!

オラクルLinux7 ブートボリューム拡張方法

ラクルLinux7を作成する際にブートボリュームを100GBで作成したとしても、起動すると40GB程度しかパーティションに割あたっていない。
この仕様は今後変わるかもしれませんが、拡張したい際にボリューム拡張を簡単に行う方法を紹介します。

OCIコンソールでブートボリュームの拡張

もともとは48GBのデフォルト値だったので100GBまで拡張します。
f:id:kyamisama:20210106153348j:plain
するとブロックデバイスの反映コマンドが画面に表示されますのでメモっておきましょう。

sudo dd iflag=direct if=/dev/oracleoci/oraclevda of=/dev/null count=1
echo "1" | sudo tee /sys/class/block/`readlink /dev/oracleoci/oraclevda | cut -d'/' -f 2`/device/rescan

ラクインスタンスでの拡張作業

現在の設定確認

sdaに46.6GB割当たっています。

[root@test ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0 46.6G  0 disk
tqsda1   8:1    0  512M  0 part /boot/efi
tqsda2   8:2    0    8G  0 part [SWAP]
mqsda3   8:3    0 38.1G  0 part /
[root@test ~]# 
先ほどメモったコマンドを実行する
[root@test ~]# dd iflag=direct if=/dev/oracleoci/oraclevda of=/dev/null count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00125832 s, 407 kB/s
[root@test ~]# echo "1" | sudo tee /sys/class/block/`readlink /dev/oracleoci/oraclevda | cut -d'/' -f 2`/device/rescan
1
[root@test ~]#
sdaの容量確認

100GBに拡張されています。

[root@test ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
tqsda1   8:1    0  512M  0 part /boot/efi
tqsda2   8:2    0    8G  0 part [SWAP]
mqsda3   8:3    0 38.1G  0 part /
[root@test ~]#

しかくブートボリュームは39GBのままです。

[root@test ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        462M     0  462M   0% /dev
tmpfs           494M     0  494M   0% /dev/shm
tmpfs           494M   51M  444M  11% /run
tmpfs           494M     0  494M   0% /sys/fs/cgroup
/dev/sda3        39G   19G   20G  48% /
/dev/sda1       512M   12M  501M   3% /boot/efi
tmpfs            99M     0   99M   0% /run/user/994
tmpfs            99M     0   99M   0% /run/user/1000
[root@test ~]#
gdiskのインストールを実施
[root@test ~]# yum install gdisk
growpartコマンドでパーティション拡張を行う

growpartコマンド実行ポイントとして、対象となるフィルシステムの末尾の番号は半角スペースを空ける事
ちなみにsda3を選んだ理由はブートボリューム「/」がsda3に該当するからです。

[root@test ~]# growpart /dev/sda 3
CHANGED: partition=3 start=17827840 old: size=79847424 end=97675264 new: size=191887326 end=209715166
[root@test ~]#

最後ファイルシステムに反映

[root@test ~]# xfs_growfs /
meta-data=/dev/sda3              isize=512    agcount=4, agsize=2495232 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=9980928, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=4873, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 9980928 to 23985915
[root@test ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        462M     0  462M   0% /dev
tmpfs           494M     0  494M   0% /dev/shm
tmpfs           494M   51M  444M  11% /run
tmpfs           494M     0  494M   0% /sys/fs/cgroup
/dev/sda3        92G   19G   74G  20% /
/dev/sda1       512M   12M  501M   3% /boot/efi
tmpfs            99M     0   99M   0% /run/user/994
tmpfs            99M     0   99M   0% /run/user/1000
[root@test ~]#

以上で拡張作業は完了です。

OCIイベント/通知サービスを使ってオブジェクトストレージのアクション通知方法

OCIのイベント/通知サービスを利用することでオブジェクトストレージに対するアクションを通知してくれるようにします。
今回はオブジェクトに対するアクションが発生した場合の通知方法を紹介します。

  • Object - Create
  • Object - Delete
  • Object - Update
  • Bucket - Create
  • Bucket - Delete
  • Bucket - Update

バケットの作成

バケット作成のポイントは「オブジェクト・イベントの出力」を有効にすることです。
それ以外はデフォルトのままで大丈夫です。
f:id:kyamisama:20210106102347j:plain

通知サービスでトピックの作成

OCIコンソールの左バーから「アプリケーション統合」>「通知」へ進みます。
トピック作成ですが、トピック名を適当に入力してOKです。
f:id:kyamisama:20210106102742j:plain

通知サービスでサブスクリプションの作成

作成したトピック画面から「サブスクリプションの作成」をクリック
f:id:kyamisama:20210106103126j:plain
サブスクリプションの作成」画面でプロトコルは「電子メール」にし、「電子メール」欄に任意の電子メールを設定します。
f:id:kyamisama:20210106103217j:plain
サブスクリプションで設定したメールアドレス宛に確認のメールが届くので有効化しておきましょう

イベントサービスの作成

OCIコンソールの左バーから「アプリケーション統合」>「イベント」へ進みます。
「イベントの作成」をクリック。
「表示名」、「説明」は適当に入力。ルール条件欄で「条件」をイベント・タイプに「サービス名」をObject Storageに「イベント・タイプ」をオブジェクトのアクションに設定。
アクション欄は「通知」を選択し通知先コンパートメントと先ほど作成したトピックを選択します。
以上が設定できましたら「ルールの作成」をクリックします。
f:id:kyamisama:20210106103749j:plain

これで設定は完了です。あとはREST APIやOCI CLIなどでテストファイルをPUTしてみましょう。
「OCI Event Notification :com.oraclecloud.objectstorage.createobject」と言う件名のメールが届くはずです。
添付ファイルのテキストにアクション情報が記載されています。