株式会社シベスピ 従業員ブログ

シベスピの社員ブログ。技術・想い・経験沢山書いていきます!

【Linux Alpine】環境設定ポイントまとめ

こんにちは。
会社を良くする会「サーバ・ネットワーク改善チーム」です。
今年から発足したこのチームは、名前の通り社内サーバ・ネットワーク改善を目標に、普段業務でも触ることのないインフラ方面での学習を兼ねたチームとなっています。
今期はサーバ構築を行いましたので、前回に引き続きサーバ構築の備忘録を兼ねた各ポイントを掲載していきたいと思います。

今回は前回インストールしたOS(Linux Alpine)の環境設定について記載しました。

BIOSの起動順序変更

会社サーバには元々Windowsが入っていたので、起動時にAlpine Linuxを起動させる必要がありました。

今では、仮想マシンが普及してホストOSの中に複数のOSを構築することが珍しくなくなってきましたが、
一つのPCに複数のOSをインストールして、起動時に選択することも可能です。(デュアルブート/マルチブートと言います。)
OSインストールの記事を調べると
WindowsLinuxを入れる方法!」
とか
「プライベート用と仕事用にOSを使い分ける!」
なんてタイトルの記事が出てくるので、手順に従い、設定していきます。
PCのメーカーによって、BIOSの表示手順が違ってくるので、事前にどこのPCを使っているのか調べておきます。
(以下、Acerで確認する場合)

  1. PCの電源を入れる。
  2. 画面上にロゴが表示されたら、[F2]ボタンを連打。
  3. BIOSの画面が立ち上がる。
  4. 右矢印キーを押して、[ブート] を選択する。
  5. 下向矢印キーを押して [ブート順序] を選択する。
  6. F5 または F6 キーを使用して、順序を変更する。
  7. F10 キーを押下する。
  8. OKを選択後、Enterキーを押して変更内容を保存してシステムを再起動する。

※画像取得し忘れました。。。。

パーティション作成

HDDやSSDは中身を一つの箱として使うのではなく、記憶領域等を「仕切って」それぞれの領域を設けます。
大きなくくりでいうと、Windowsの「Cドライブ」や「Dドライブ」があたります。
パーティションで区切ることの利点は、それぞれの領域が独立することだと思います。
一方の領域のデータが破損した場合に、HDD全体をフォーマットするのではなく、その領域内だけに限定することができます。
注意点としては、一度パーティションを区切ると、変更が面倒なことです。
なので、実行するときは綿密な計画性が必要です。

最初に、現在のパーティション情報を確認してみましょう。
パーティション情報は「/proc/partitions」に保存されています。

fdisk -l デバイス名


nameのところに色々なパーティション名が表示されましたね。
今回はsdaにパーティションを作成してみます。

fdisk  デバイス名


パーティションを作成するために対話モードに入りました。


「n」を入力して、新規作成を行います。
ですが、空きがないとメッセージが出力されました。
調べたところ、HDDは4つまでパーティションを作ることができるそうです。


仕方ないので、使用予定のないsda2を削除することにします。
「d」で削除です。


改めて「n」で新規作成を行います。
ここでパーティションを作成するにあたって、いろいろ設定をしました。
が、とりあえず今回はパーティションを作成するのが目的なので、すべてdefultを選択しました。


「p」を入力して、作成したパーティションを調べると、
/dev/sda2が作成されていることが確認できました!

これにてパーティション作成は完了です。

また、パーティションには種類があり、
「基本パーティション
「論理パーティション
「拡張パーティション
と、それらを設定していく必要があるのですが、それだけで記事が一本では足りないくらいの量となるので、今後も調べていきたいと思います。

ユーザ設定

サーバ管理者として作業する上で、ユーザ作成は必須となります。
基本的にrootユーザであれば、最上位権限となるのでなんでも出来てしまうのですが、
なんでも出来てしまうが故に不意の事故などを防ぐことができません。
そのために、ある程度制限をつけたユーザを作成することで未然の防止となります。

ユーザ作成の前に、初期設定を見ることをオススメします。

useradd -D

表示されたのは、ユーザ作成された際に設定される項目の一覧です。
これらを変更したい時には"useradd -D -〇〇"と追加でオプションを指定してください。

ユーザ作成のコマンドは以下となります。

useradd  {ユーザ名}

コマンド実行後、何も表示されませんがユーザは作成されています。
作成されたユーザは、先ほど確認した初期設定をもとに作成されます。

次にパスワード設定です。

passwd {パスワード}


2回パスワード入力を求められます。

作成したユーザは以下のパスから確認できます。

cat /etc/passwd

パスワードについては、以下から確認できます。(root権限がないと、参照できないので注意です!)

cat /etc/shadow
たくさん出てきているので、tailコマンドを使用しています。

残念ながら、パスワードそのものは暗号化されており確認はできませんが、それ以外の設定値を参照できます。

グループ作成

グループは、一つ一つのユーザに権限を設けていては手間なので、グループごとに権限を設定できるコマンドです。
ユーザは必ずどこかのグループに一つは所属しています。
グループ一覧を確認するコマンドは以下となります。

cat /etc/group

グループ追加

groupadd {グループ名}


コマンドを入力すると、さっそく追加されましたね!

ちなみに、グループ名を変更したいときは、groupmodです。
グループ修正

groupmod -n {変更後グループ名} {変更前グループ名}


終わりに

いかがでしたでしょうか。
今回載せたコマンドは、ほんの一部しかご紹介できませんでしたが、今後とも調べつつまたこうして記事にしていきたいと思います。

趣味の模索

早いもので入社から4年が経ち、趣味が少しだけ変わりました。

◆参考
はじめまして、マコトです。 - 株式会社シベスピ 従業員ブログ

6は家庭菜園に夢中で、8は度重なる中止公演に心折れて1が中心になり、
10はピクミンに替わりました。
あれ、あんまり変わってないですかね笑

いまだにあつ森やってるくらいには、新しい刺激が苦手なようです。


だから、いまも古着探しが好きです。

ずっと探していた理想のチロルワンピースにようやく出逢っちゃいました。
たぶん市販されていたものではなく、誰かの手作り品です。
先日の社員旅行にも着ていきました、るんるんの気持ち。

チロルワンピースといえば、普段使いできるシンプルなものから
チロル地方伝統の民族衣装まで、色も形もさまざまです。


その中でも魅力的なのは、可愛らしい刺繍!

色使い鮮やかな花柄や幾何学模様があしらわれており、
まぶたに浮かぶはアルプスの山々。

刺繍に憧れて・・・

で、始めちゃいました。刺繍。

裁縫はもともと趣味ですが、刺繍は初挑戦!
中高生の時にミサンガ作りにハマり、そのまま15年以上眠らせていた刺繍糸が
ようやく日の目を浴びています。

まだ、模様を描くまで高度なことは出来ないのですが、
まずはどんどん作品を作り上げ「達成感」をやりがいにしています。
今年は、サテンステッチとロングアンドショートステッチのみ注力し、
コツを掴むことが目標です。

仕事が終わったら刺繍、

友達を待っている合間に刺繍、

夜更かしして刺繍の日々。

けっしてドン・〇〇ーテに入り浸ってはいません、、

ススメ!

用意するものは針、糸、布!
すぐに始められるため、気になる人はぜひ挑戦してみて下さい。

初心者はデザインは二の次!
スマホから画像をトレースすればプリンターは不要です。

もし刺繍枠が必要なら、100均にも売っています。


まだ始めたばかりの私からちょっとしたアドバイスですが、
かなり序盤で学んだことは、
刺す場所を少しでも間違えたら「躊躇なく戻る」ことです。
圧倒的に手戻りが小さくなります。

また、あとから無理やり修正するとムラができやすくなるため、
戻った方が仕上がりが綺麗です。システム開発と一緒ですね。


いまでは、自宅の廊下にギャラリー(笑)を設けさせてもらいました。

早く、手持ちの服にワンポイント刺繍できるようになりた~い。

【Linux Alpine】インストール手順(パーティション分割してインストール)

こんにちは。
会社を良くする会「サーバ・ネットワーク改善チーム」です。
今年から発足したこのチームは、名前の通り社内サーバ・ネットワーク改善を目標に、普段業務でも触ることのないインフラ方面での学習を兼ねたチームとなっています。
今期はサーバ構築を行いましたので、今回から3回にかけて、サーバ構築の備忘録を兼ねた各ポイントを掲載していきたいと思います。

今回はタイトルとおり、サーバにOSのインストールを行った際の手順をブログに作成しました。

Alpine Linux

wikipedia様によると


Alpine Linux (アルパインリナックス) は、muslとBusyBoxをベースとしたLinuxディストリビューションである。

・・・(省略)・・・

Alpine LinuxはmuslとBusyBoxを利用して構築されており、従来のLinuxディストリビューションと比較してLXCやインストールに必要なストレージ容量が小型化されている。リソース効率が向上しており、起動時間が短縮されている。

とのことです。
とっても軽いLinuxということぐらいの認識です。

インストール

ざっくり大まかな流れは↓みたいに感じです。

  1. インストールメディアの作成
    1. isoファイルのダウンロード
    2. メディア(今回はCD-RAM)にisoを書き込み
  2. メディアから起動
  3. コマンドでインストール

公式サイトからisoファイルをダウンロード

下記URLからSTANDARDバージョンをダウンロードしました。
64bit環境の場合は、添付画像の「x86_64」で良いです!クリックするとダウンロードが始まります。
alpinelinux.org

公式サイトからダウンロード

メディアに書き込み

isoファイルをメディア(CD-RAM)に書き込みます。そのままドラッグ&ドロップではできないので注意してください!

Windows標準の書き込みで実行できます。

作成したメディアから起動

先ほど作成したメディアで起動します。インストールするPCにCDを差し込み、BIOSからboot optionをCDに変更して、起動します。
BIOSはPCによって違う、かつ、スクショも取れないので、画像は割愛とさせていただきます。

「PC CD 起動」などでネット検索すれば出てくるかと思います。
↓こんな画面が出てきたら、起動成功です。

起動画面

ログインユーザを聞かれている状態なので、「root」でログインできます。
↓ログインした時のメッセージ

Welcome to Alpine Linux 3.15
Kernel 5.15.4-0-Its on an x86_64 (/dev/tty1)
localhost login: root
Welcome to Alpine!

The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See <http://wiki .alpinelinux.org/>.

You can setup the system with the command: setup-alpine
You may change this message by editing /etc/motd.
localhost : "#

インストールプログラムの編集

ここが本題です。そのままインストールすると、全てのHDD(もしくはSSD)の容量を利用して、インストールされるため、パーティションを分割することができません。

パーティション分割やマウントなどのコマンドを正しく実行していけば、できるはずなのですが、インストールプログラムを編集するのが一番簡単です。

編集するファイルは「/sbin/setup-disk」です。

しかしながら、間違った編集をしてしまうと、インストールプログラムが壊れてしまうので、バックアップを取っておきましょう。

バックアップコマンド↓

cp /sbin/setup-disk /sbin/setup-disk.backup

確認↓

ls /sbin/setup-disk | grep setup-disk
 setup-disk
 setup-disk.backup

さて、いよいよ編集です。viで編集していきます。

vi /sbin/setup-disk


viで文字列検索を行います。検索する文字列は「native_disk_install()」です。viで文字列検索するには「/検索文字列」でできます。(今回の場合「/native_disk_install()」でEnter)

あとは、その関数内の8行目ぐらいの「local root_size=${ROOT_SIZE}」を変更します。OSをインストールするパーティションの容量だけマイナス○○と記入します。viではファイル編集をするときは「i」を押す必要があります。
64GBとするなら「local root_size=${ROOT_SIZE:-64000}」とします。

local root_size=${ROOT_SIZE}local root_size=${ROOT_SIZE:-64000}

native_disk_install()の中の一部を抜粋↓(下の10行目が変更点)

native_disk_install() {
	local prep_part_type=$(partition_id prep)
	local root_part_type=$(partition_id linux)
	local swap_part_type=$(partition_id swap)
	local boot_part_type=$(partition_id linux)

	local prep_size=8
	local boot_size=${BOOT_SIZE:-100}
	local swap_size=${SWAP_SIZE}
	local root_size=${ROOT_SIZE:-64000}
	local root_dev= boot_dev= swap_dev=
	init_progs $(select_bootloader_pkg) II return 1

	confirm_erase Se Il return 1
	if [ "$BOOTFS" = "vfat" ] && [ -z "SUSE_EFI" ]; then
		boot_part_type=$(partition_id ufat)
	fi
	if [ -n "SUSE_RAID" 1; then

		boot_part_type=$(partition_id raid)
		root_part_type=$(partition_id raid)
		swap_part_type=$(partition_id raid)
		stop_all_raid
	fi

編集したファイルを保存します。escキーを押して、「:wq」で保存できます。

これでインストールの準備が完了です。

インストール

あとは、通常通り「setup-alpine」コマンドでインストールを進めれば完了です。

setup-alpine

キーボードレイアウトの設定

「setup-alpine」を実行すると、キーボードレイアウトを聞かれます。ご自身のキーボードレイアウトを選びます。(ここでは「jp」:10行目で入力)

Available keyboard layouts:
af     be     cn     fi     hu     it     lk     mm     pl     sy     uz
al     bg     cz     fo     id     jp     lt     mt     pt     th     vn
am     br     de     fr     ie     ke     lv     my     ro     tj
ara    brai   dk     gb     il     kg     ma     ng     rs     tm
at     by     dz     ge     in     kr     md     nl     ru     tr
az     ca     ee     gh     iq     kz     me     no     se     tw
ba     ch     epo    gr     ir     la     mk     ph     si     ua
bd     cm     es     hr     is     latam  ml     pk     sk     us
Select keyboard layout [none]:jp

さらに詳細な種類を尋ねられる場合がありますので、ご自身のを選択します。(ここでは「jp」:3行目で入力)

Select keyboard layout [none]: jp
Available variants: jp-OADG109A jp-dvorak jp-kana jp-kana86 jp-mac jp 
Select variant []: jp
 * Caching service dependencies ...                                   [ ok ]
 * Setting keymap ...                                                 [ ok ]

ホスト名の設定

このホストの名前を入力します。ここでは「my-alpine」としてます。何も入力しなかった場合、「localhost」となります。

Enter system hostname (short form, e.g. 'foo') [localhost]: my-alpine

ネットワークインターフェイスの指定

初期化するネットワークインターフェイスを設定します。デフォルトは「eth0」です。

今更ですが、有線接続してインストール作業を行った方が良いです。無線だとちょっとうまくいかなかったので。。

Enter '?' for help on bridges, bonding and vlans.
Which one do you want to initialize? (or '?' or 'done') [eth0] 

デフォルトで「eth0」なので、そのままEnterでOKです。

IPアドレスの設定

ネットワークインターフェイスに設定するIPアドレスの指定をします。
基本的にサーバは固定IPを割り振るべきですが、一旦、自動としました。
dhcp」で自動割り振りします。

Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp] 

デフォルトで「dhcp」なので、そのままEnterでOKです。
次にネットワーク構成をマニュアルで設定するか聞かれます。「dhcp」とした場合、マニュアル設定は必要ないので、「no」で進めます。

下記のように勝手にIPが割り振られました。(ここではIPアドレスを「XX」で表していますが、正しくは数値が表示されます。また、「XX」は同じ値を示していませんので、お気になさらず)

dhcpc: started, v1.34.1
udhcpc: sending discover
udhcpc: sending select for 192.168.XX.XX, server 192.168.XX.XX
udhcpc: lease of 192.168.XX.XX obtained, lease time 86400

rootパスワードの設定

一番初めにrootでログインしたときは、パスワードを聞かれなかったはずです。セキュリティ上よろしくないので、設定をします。

Changing password for root
New password: 
Retype password: 

入力しても、何も表示されませんが、入力できてるので、同じパスワードを2回入力してください。

タイムゾーンの設定

タイムゾーンを設定します。デフォルトだと、「UTC」なので、9時間ずれちゃう。。
「Asia」と入力し、「Tokyo」と入力することで、日本の時間になります。

Which timezone are you in? ('?' for list) [UTC] Asia
What sub-timezone of ' Asia' are you in? ('?' for list) Tokyo
 * Starting busybox acpid ...                                          [ ok ]
 * Starting busybox crond ...                                          [ ok ]

プロキシの設定

HTTP/FTP接続する際にプロキシサーバを利用している場合は、そのアドレスとポート番号を指定します。

自宅にそんなものはないので「none」で進めます。

HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] 

NTPクライアントの設定

NTPクライアントにどれを利用するか設定します。特に気にせずデフォルトの「chrony」で進めます。

Which NTP client to run? ('busybox', 'openntpd', 'chrony' or 'none') [chrony] 
 * service chronyd added to runlevel default
 * Caching service dependencies ...                                 [ ok ]
 * Starting chronyd ...                                             [ ok ]

ミラーサーバの設定

パッケージを取得するときのミラーサーバを設定します。一番早いところをりようするので、「f」で進めます。

Available mirrors:
1) dl-cdn.alpinelinux.org
2) uk.alpinelinux.org
3) dl-2.alpinelinux.org
・・・
52) mirror.0-1.cloud
53) mirror.kku.ac.th
54) mirror.uepg.br

r) Add random from the above list
f) Detect and add fastest mirror from above list
e) Edit /etc/apk/repositories with text editor

Enter mirror number (1-54) or URL to add (or r/f/e/done) [1]: f

Finding fastest mirror.
・・・
・・・

SSHサーバの設定

SSHサーバを「openssh」か「dropbear」にするか指定します。良く利用されてる「openssh」で進めます。

Which SSH server? ('openssh', 'dropbear' or 'none') [openssh] 
 * service sshd added to runlevel default
 * Caching service dependencies ...                              [ ok ]
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 
 * Starting sshd ...                                             [ ok ]

デフォルトで「openssh」なので、そのままEnterでOKです。

インストール先ストレージの設定

ようやくインストールです。ここではインストール先ストレージの設定を行います。
すでに別で利用しているストレージを使うと、削除されるので、間違わないように注意してください!

下記はサンプルです。人によって表示は異なります。
次に何に使うかを聞かれるので「sys」と入力します。

Available disks are:
  sda   (500.1 GB ATA     HGST HTS725050A7)
  sdb   (256.1 GB ATA     TS256GMSA370    )
Which disk(s) would you like to use? (or '?' for help or 'none') [none] sda
The following disk is selected:
  sda   (500.1 GB ATA     HGST HTS725050A7)
How would you like to use it? ('sys', 'data', 'lvm' or '?' for help) [?] sys

続いて、「ストレージを消してよいか」と確認されるので、「y」でOKです。↓(3行目)

WARNING: The following disk(s) will be erased:
  sda   (500.1 GB HGST HTS725050A7)
WARNING: Erase the above disk(s) and continue? [y/N]: y
------
省略
------
Installation is complete. Please reboot.
my-alpine:~# 

以上でインストール完了です。この後はBIOSから起動ディスクを選んで起動できれば正しくインストールできてます!

まとめ

普通にインストールする分にはそこまで迷う部分はないのですが、パーティション分割となると、かなり苦労しました。
なにかのご参考になれば幸いです。

【WebAPI】multipart/form-dataでファイルをアップロードする 【Java】

今回はJavaからWebAPIでファイルアップロードする方法を紹介しようと思います。
アップロード方法としてはmultipart/form-dataを使用します。

String urlStr = "https://httpbin.org/post";
String CRLF = "\r\n";
File file = new File("test.txt");
String boundary = UUID.randomUUID().toString();
HttpURLConnection con =null;
InputStream in = null;

try {
    // ファイルをbyte配列に変換
    byte[] fileByte = Files.readAllBytes(file.toPath());

    con = (HttpURLConnection) new URL(urlStr).openConnection();
    con.setRequestMethod("POST");
    con.setDoOutput(true);
    con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);

    DataOutputStream request = new DataOutputStream(con.getOutputStream());

    request.writeBytes("--" + boundary + CRLF);
    request.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getName() + "\"" + CRLF + CRLF);
    request.write(fileByte);
    request.writeBytes(CRLF);
    request.writeBytes("--" + boundary + "--" + CRLF);
    request.flush();
    request.close();

 // 結果を取得する
    int status = con.getResponseCode();

    if(status == HttpURLConnection.HTTP_OK) {
        // 正常系の場合はgetInputStream
        in = con.getInputStream();
    } else {
        // 異常系の場合はgetErrorStream
        in = con.getErrorStream();
    }
    // InputStream結果を出力(今回は割愛)
    read(in);
} catch (Exception e) {
    e.printStackTrace();
} finally {
    if(con != null) {
        con.disconnect();
    }
}


結果はこんな感じ

{
  "args": {}, 
  "data": "", 
  "files": {
    "file": "test"
  }, 
  "form": {}, 
  "headers": {
    "Accept": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2", 
    "Content-Length": "156", 
    "Content-Type": "multipart/form-data;boundary=c9f9f54a-30b7-4442-adc2-6c306e92c21d", 
    "Host": "httpbin.org", 
    "User-Agent": "Java/1.8.0_144", 
    "X-Amzn-Trace-Id": "Root=X-XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX"
  }, 
  "json": null, 
  "origin": "XX.XXX.XXX.XX", 
  "url": "https://httpbin.org/post"
}

「"files": {}」内に格納されているため、無事にファイルが連携されていることが確認できました。

以下、簡単な解説
boundaryは簡単に言うと区切り文字になります。ランダムな文字列を使用します。
ファイルはバイト配列で送る必要があるため、readAllBytesメソッドでバイト配列に変換しています。(Java 7以降)

詰まりそうなポイントを書き出してみます。
・「name=\"file\";」の箇所は向こうで指定しているものを宣言する。
・文字列含めバイトで送る必要があるため、DataOutputStreamを使う。
・ファイルを書き出す直前の改行は2つ必要。
・閉じる直前には「"--" + boundary」ではなく「"--" + boundary + "--" + CRLF」を書き出す。


今回WebAPIの連携先として使っているhttps://httpbin.orgはWebAPIのテストに便利です。
もっと早く使うべきだった。。

以上、備忘録がてらのWebAPIのファイルアップロード方法紹介でした。

物語を消化するということ

皆様本日もお疲れ様です。
8月も終わったところですが、今年の夏はどのように過ごされましたでしょうか?
私は何もしていなかったので、いっそ今回は『今年の夏は何して過ごしましたか?私はこう過ごしました!』というタイトルで、中身が空っぽの記事を作ろうかと思っておりました。
普通にブログ担当にどやされそうだったのでやめました。
過度なボケは自制できて偉いですね。松本です。

読書感想文というものがありましたが

さて突然ですが、全国の小学生が選ぶ『全日本夏休み何故やるのか分からない宿題選手権優勝候補筆頭(諸説あり)』といえば、「読書感想文」ではないでしょうか。
かく言う私も、最後の最後まで残り、随分と悩まされた宿題であります。
しかし最近になって、この「感想を書く」、もとい「物語に対して感想を持つ」というアクションが、割と大事だったんじゃないかと思ってきたので、そんなふんわりした話をしようかと思います。

物語を読むということ

読書家でなかったとしても、漫画や映画、ロールプレイング系統のゲームなど、実は社会人になっても物語に触れる機会は多いと思います。
これらを純粋に楽しかった!だけで消費するのもまた娯楽の形ではありますが、「物語を読む」ということは、「誰かの人生を追体験する」ことでもある、と考えたらどうでしょう。
誰かが生まれてから死ぬまでを描いた物語を一つ読み終えたとしたら、自分は2人分の人生の経験を得ている……と考えるのは、飛躍した理屈でしょうか?

自分の経験値とするために

どんなに素晴らしい経験であっても、それ自体を忘れてしまったら意味がありません。
ましてや物語から得るのは実体験ではない他人の人生ですから、単なる印象深い出来事として記憶しておくのも難しいでしょう。
だからこそ、それに対して、自分が「どう思ったのか」「どんな感情を持ったのか」を考え、言語化しておくことが必要なのだと思います。

・どうしてそう思ったのか。
・どうして展開に納得がいかないのか。
・どうしてその人・言葉に魅力を感じたのか。 etc.

感じたことをきちんと咀嚼して自分の中に落とし込んだ時に、初めて、物語に触れた時間が自分の経験として昇華されるのではないか、と思っております。
読書感想文のような形式ではなくても、感想メモのような形で残しておけたら尚良いですね!

大人だからこそ

今回は、部屋の積読を消化するきっかけが欲しくて色々考えた結果を、夏休みの宿題に追われる従妹を尻目にしつつ記事にまとめてみました。(積読は積まれたままですが)
物語の中の誰かの考えを受け入れたり否定したりしていきながら、自分の今の環境では見えない範囲まで視野を広げて、多様化する昨今の価値観に理解を示していけるだけの経験を身に着けていけるといいなと思います。




でも読書感想文はもうやりたくないです。

社員旅行で北海道へ

お久しぶりです。美味しい物に目がない大墨です。

9/10(土)から9/11(日)で社員旅行で北海道に行って参りました。今回は、そのレポートっぽいものになります。

 

1日目

新千歳空港に9時半ごろに到着。
そこからすぐに札幌へ。

昼食は、北海道といえば海鮮!ということで、回転寿司『根室花まる』に行ってきました。

https://www.sushi-hanamaru.com/store/details/s03.html?p=b
有名店ということもあり開店15分前に整理券を受け取ったらもう50番台・・・

味は、待った甲斐あってどのネタも新鮮で美味しかったです!

f:id:chivsp:20220920230304j:image
写真は蝦夷舞茸の天ぷらです。(全然海鮮じゃないけど肉厚で美味しかった)

 

昼食後は、それっぽい風景を撮りたくて『さっぽろ羊ヶ丘展望台』へ。
https://www.hitsujigaoka.jp/

f:id:chivsp:20220920230811j:image

f:id:chivsp:20220920235838j:image
f:id:chivsp:20220920235835j:image
札幌の街をバックに佇むクラーク像、丘に建つチャペル、牧草を食べる羊・・・うーん、北海道っぽい。

 

夕飯は『すすきのジンギスカン ゆうひ』さんで頂きました。

https://feeel-corporation.com/top-page/genghis-khan-yuhi/

実はホテルに戻ってから一眠りしてしまい、20時ごろから慌ててお店を探したのですが・・・24時までやっているから、と電話したこのお店、2022年6月札幌ジンギスカンの名店ランキング1位のお店でした!

https://nlab.itmedia.co.jp/research/articles/767150/5

f:id:chivsp:20220920235900j:image

ラムタン(写真右奥)が特に美味しかったです。

 

 

2日目

2日目は朝から社員全員で、札幌場外市場へ移動しグループに分かれて朝食を食べました。
私たちは『北海食堂 北のグルメ亭』へ。
https://www.kitanogurume.co.jp/shokudo/

いただいたのはうに・かに・いくら丼!かに汁!つぶ貝に中トロ!朝から贅沢・・・!

f:id:chivsp:20220920235709j:image
f:id:chivsp:20220920235711j:image

f:id:chivsp:20220920235714j:image

 

札幌に戻り、六花亭でお土産を購入し、早めに空港へ。

 

昼食は新千歳空港内のスープカレー店『lavi』。

https://011bros.com/shop/chitose

f:id:chivsp:20220921000951j:image

ベースのスープ、辛さ、トッピングなど細かく選べて良い感じ。写真は、迷った挙句頼んだ全部載せカレー。

 

昼食後はポケモンショップを覗いたり、頼まれてたのに買い忘れた白い恋人を買ったりと、色々しているうちにあっという間に出発時刻に。手荷物検査の後にソフトクリームを食べている人もちらほらいて、北海道を満喫し切っていました。

 

短い期間でしたが、結構北海道を楽しめたんじゃないかと思います。ただ、殆ど行き当たりばったりの旅行だったので、次があればもっとキッチリ予定を立てて望んでみようかなと思いました。

 

最後に、羊ヶ丘展望台で売っていたインパクトの強いお土産を紹介して締めようと思います。

 

 

 

 

 

 

 

 

f:id:chivsp:20220921002233j:image

普通こういうのって、もうちょっとデフォルメして可愛く作るモノでは・・・?

社員旅行に行ってきました

お久しぶりです。山田です。

先日久しぶりに、社員旅行に行ってきたので、その様子をブログに書きます。

今回は、1泊2日の北海道旅行でした。

1日目

1日目は、羽田空港に集合して北海道へ。
北海道についたら、自由行動だったので、さっそくお昼に有名な回転寿司に行ってきました。
根室花まる
根室花まる JRタワーステラプレイス店 - 札幌(JR)/回転寿司 | 食べログ
新鮮なネタで、おいしかったです。
肝心のお寿司の写真は、取り忘れました、、

その後は、甘いものを食べに、六花亭 札幌本店
あまり食べられるところの無いという、
マルセイアイスサンドを食べました。
札幌本店 | 施設のご案内 | 〈公式〉六花亭

その後は、散歩がてら、ちょうど行われていた札幌オータムフェストを見に行きました。
さっぽろオータムフェスト 公式ホームページ

オータムフェスト

人気のイベントのようで、すごい人だかりでした。

夕飯まで時間があったので、札幌市内を散策しました。
その中で、サッポロビール博物館も行ってきました。
サッポロビール博物館 | 工場見学・ミュージアム | サッポロビール

札幌ビール
札幌ビール2

夕飯は、ホテルの近くでジンギスカンを食べました。
夜空のジンギスカン すすきの店 交差点前(すすきの駅/焼肉・ホルモン)<ネット予約可> | ホットペッパーグルメ

夜は、さっぽろテレビ塔もきれいにライトアップされていました。

さっぽろテレビ塔

2日目

2日目は、朝は社員みんなで、札幌場外市で朝食を食べました。
私はいろいろな種類が食べられる海鮮丼にしました。
札幌市中央卸売市場 札幌場外市場

海鮮丼

朝食後は、また自由行動だったため、円山動物園へ行ってきました。
ホーム/札幌市円山動物園

2日目のお昼は、今回食べていなくて、北海道らしいものということで、スープカレーにしました。
スープカリーイエロー – 1996年創業のスープカリー専門店でございます。

Yellow
Yellow2

その後は、お土産を買って、空港に集合して東京に戻ってきました。

2日間と短かったですが、楽しい時間を過ごせました。
来年も、楽しい社員旅行になればと思います。