ピナクルのくるくるパソコン術

みんなが使えるパソコン術を提供します。

【Ubuntu】【SQLServer】UbuntuにSQLServerをインストール


UbuntuSQLServerをインストールする方法を説明します。

下記サイトを参考にしています。

docs.microsoft.com

* ①OS書き込みツールのインストール

  1. パブリック リポジトリの GPG キーをインポートする。

    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - 

    DNSの設定によってはwgetが働かない場合があるので、
    その場合は/etc/resolv.confのnameserverを8.8.8.8にするなどしてください

  2. SQL Server Ubuntu リポジトリを登録する。

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-preview.list)" 

  3. 次のコマンドを実行して SQL Server をインストールする。

    sudo apt-get update
    
    sudo apt-get install -y mssql-server

  4. 次のコマンドを実行して SQL Server のセットアップをする。

    sudo /opt/mssql/bin/mssql-conf setup

    セットアップ中にSQLServerのエディションやパスワードを聞かれるので、事前に考えておいてください

    SQLServerのエディション確認
    Choose an edition of SQL Server:
    1) Evaluation (free, no production use rights, 180-day limit)
    2) Developer (free, no production use rights)
    3) Express (free)
    4) Web (PAID)
    5) Standard (PAID)
    6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
    7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
    8) I bought a license through a retail sales channel and have a product key to enter.
    Enter your edition(1-8): 2
    
    パスワード設定
    Enter the SQL Server system administrator password:
    Confirm the SQL Server system administrator password:
    Configuring SQL Server...
    

  5. サービスが実行されていることを確認する。

    systemctl status mssql-server --no-pager

    下記のようにActiveになっていればOKです。

    サービス確認mssql-server.service - Microsoft SQL Server Database Engine
     Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-08-13 08:01:06 UTC; 5min ago
       Docs: https://docs.microsoft.com/en-us/sql/linux
    Main PID: 3366 (sqlservr)
      Tasks: 179
     Memory: 853.3M
        CPU: 23.093s
     CGroup: /system.slice/mssql-server.service
             tq3366 /opt/mssql/bin/sqlservr
             mq3396 /opt/mssql/bin/sqlservr
    

    ここまで設定すればSSMSからログインできるようになります。

項目設定内容
サーバーの種類データベースエンジン
サーバー名SQLServerをインストールしたIPアドレス
認証SQL Server 認証
ログインログインアカウント(初期設定時はSA)
パスワードログインパスワード(SAの場合はSetUp時に設定したパスワード)

PCにOSを書き込む


PC本体にUbuntuServerを入れる方法を下記手順で説明します。
①OSのダウンロード・USBインストールメディアの作成
②PC本体へのOS書き込み

USBインストールメディアの作成にあたってRufusを使用しています。

※今回の被検体

* ①OSのダウンロード・USBインストールメディアの作成

  1. 書き込みたいOSのダウンロード

    今回はUbuntuServerを使いたいので、下記サイトからダウンロードします。

    jp.ubuntu.com
  2. USBインストールメディアの作成

    Rufusを起動し、書き込むUSB・ダウンロードしてきたOSを指定し、書き込みをスタートします。

書き込みに40分ほど時間がかかります。
あまりにも長いのでPC本体の写真撮ったりディスプレイ拭いたりしてました。

* ②PC本体へのOS書き込み

  1. USBインストールメディアを差す
  2. PCを起動させ、BIOS画面を開く

    「F11」を連打しました。

  3. 起動するデバイスを選択する
    [

    今回はSamDiskのUSBを使用したので、それを選択します。

  4. 「Try or Install UbuntuServer」を選択する

    以降は、OSに沿ったインストール設定を行います。

    それらが終わればインストール完了です。

     

【Ubuntu】【Lxd】Lxdコンテナの作成・初期設定


Lxdコンテナの作成・初期設定方法を記載します。

* ネットワークのブリッジ設定

  1. Lxdコンテナの作成
    lxc launchコマンドでコンテナを作成します。
    コマンド
    lxc launch OS コンテナ名

    問題なければ下記のように帰ってきます。
    lxc listでコンテナが作成されていれば成功です。

    
    ubuntu@ubuntu:~$ lxc launch ubuntu:20.04 test
    Creating test
    Retrieving image: Unpack: 100% (314.76MB/s)
    Starting test
    ubuntu@ubuntu:~$
    
    lxc list
    +------+---------+--------------------+------+-----------+-----------+
    | NAME |  STATE  |        IPV4        | IPV6 |   TYPE    | SNAPSHOTS |
    +------+---------+--------------------+------+-----------+-----------+
    | test | RUNNING | 192.168.1.5 (eth0) |      | CONTAINER | 0         |
    +------+---------+--------------------+------+-----------+-----------+
    
  2. Lxdコンテナに入る
    lxc execコマンドでコンテナ内部に入ります。

    コマンド
    lxc exec コンテナ名 bash

    内部に入ると端末の左側の表示が変わります。rootでログインされています。

    コマンド
    ubuntu@ubuntu:~$ lxc exec test bash
    root@test:~#
    

  3. パッケージのアップデートをする
    下記コマンドでパッケージをアップデートします。

    コマンド
    apt update
    apt upgrade
    

  4. ネットワーク設定をする
    netplanの設定を書き換えてネットワーク設定をします。
    初回時はファイルがないので新規作成してください

    /etc/netplan/99-cloud-init.yaml
    network:
     ethernets:
         eth0:
             dhcp4: false
             addresses: [設定したいIPアドレス/16]
             gateway4: ルータのIPアドレス
         eth1:
             dhcp4: true
    

    私は下記のように設定しました。

    例 /etc/netplan/99-cloud-init.yaml
    network:
     ethernets:
         eth0:
             dhcp4: false
             addresses: [192.168.10.1/16]
             gateway4: 192.168.1.1
         eth1:
             dhcp4: true
    
    下記コマンドで設定を反映させます。
    コマンド
    netplan apply

【Ubuntu】【Lxd】Lxdネットワークブリッジの設定


Lxdのネットワークブリッジの設定方法を記載します。

* ネットワークのブリッジ設定

  1. bridge-utilsのインストール

    sudo apt install bridge-utils

  2. IPv4 フォワーディングを有効にする
    /etc/sysctl.conf内の#net.ipv4.ip_forward=1のコメントを外すことで有効になります。

    /etc/sysctl.conf
    # See http://lwn.net/Articles/277146/
    #Note: This may impact IPv6 TCP sessions too
    #net.ipv4.tcp_syncookies=1
    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1
    
    下記コマンドで設定を反映させます。
    コマンド
    sudo sysctl -p

  3. netplanの設定を書き換える

    ※注意 古いOSだとnetplanではなくinterfacesでの設定になります。その場合は別のサイトを参考にしてください。


    /etc/netplan/99-cloud-init.yamlにネットワーク設定を記載します。
    初回時はファイルがないので新規作成してください。
    /etc/netplan/99-cloud-init.yaml
    network:
     ethernets:
         eth0:
             dhcp4: false
             dhcp6: false
     version: 2
     bridges:
         br0:
             interfaces: [eth0]
             dhcp4: false
             addresses: [固定IPで設定するアドレス/16]
             gateway4: ルータ・ハブのIPアドレス
             nameservers:
                 addresses: [ルータ・ハブのIPアドレス,8.8.8.8,8.8.4.4]
             optional: true
    

    下記は私は下記のように設定しました。

    例 /etc/netplan/99-cloud-init.yaml
    network:
     ethernets:
         eth0:
             dhcp4: false
             dhcp6: false
     version: 2
     bridges:
         br0:
             interfaces: [eth0]
             dhcp4: false
             addresses: [192.168.1.2/16]
             gateway4: 192.168.1.1
             nameservers:
                 addresses: [192.168.1.1,8.8.8.8,8.8.4.4]
             optional: true
    
    下記コマンドで設定を反映させます。
    コマンド
    sudo netplan apply

    この時ネットワークが切れることもあるので注意してください。(特にSSHでアクセスしている場合)

  4. Lxdのプロファイルを変更する
    lxc profile edit default内にnictypeparentを追加します。
    ブリッジするのでnetworkがあった場合は消しておいてください。
    lxc profile edit default
    eth0:
     name: eth0
     nictype: bridged
     parent: br0
     type: nic
    

    確認すると下記のようになります。

    lxc profile device show default
    eth0:
     name: eth0
     nictype: bridged
     parent: br0
     type: nic
    root:
     path: /
     pool: lxdfs
     type: disk
    

【Ubuntu】【Lxd】Lxdのストレージ変更


Lxdのストレージ変更方法を説明します

* はじめに

今回はストレージが下記の状態からスタートします。

ubuntu@ubuntu:~$ lxc storage list
+---------+--------+--------------------------------------------+-------------+---------+---------+
|  NAME   | DRIVER |                   SOURCE                   | DESCRIPTION | USED BY |  STATE  |
+---------+--------+--------------------------------------------+-------------+---------+---------+
| default | btrfs  | /var/snap/lxd/common/lxd/disks/default.img |             | 1       | CREATED |
+---------+--------+--------------------------------------------+-------------+---------+---------+

* ①Lxdの新規ストレージ作成

  1. Lxdの新規ストレージ作成
    lxc storage createを実行します。
    コマンド
    lxc storage create ストレージ名 ファイルシステム source=ファイルパス
    項目説明
    ストレージ名 ストレージ名に設定したい任意の文字列
    ファイルシステム ストレージのファイルシステム
    以下から選べる
    ・dir
    ・ceph
    ・ceph
    ・btrfs
    ・lvm
    zfs
    ファイルパス ストレージに使用するファイルパス

    私は今回btrfsのファイルシステムにしたいので下記コマンドを実行しました。


    lxc storage create lxdfs btrfs source=/dev/sda
    失敗時
    Error: Failed to format block device: Failed to run: mkfs.btrfs -L lxdfs /dev/sda: /dev/sda appears to contain an existing filesystem (btrfs). ERROR: use the -f option to force overwrite of /dev/sda

    外付けHDDを設定しようとして上記MSGがでて失敗した場合は、下記コマンドでシグネチャを消去してください。

    sudo wipefs -a /dev/sda
    www.commandlinux.com

    設定に成功するとストレージが下記になります。

    lxc storage list
    +---------+--------+--------------------------------------------+-------------+---------+---------+ | NAME | DRIVER | SOURCE | DESCRIPTION | USED BY | STATE | +---------+--------+--------------------------------------------+-------------+---------+---------+ | default | btrfs | /var/snap/lxd/common/lxd/disks/default.img | | 1 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+ | lxdfs | btrfs | 780e0376-19ad-490f-b373-fa5728a22dfc | | 0 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+
  2. Lxdのデフォルトプロファイルの保存先を変更
    lxc profile editでデフォルトプロファイルの保存先を変更します。
    lxc profile edit default 

    エディターが開くのでpoolのdefaultを今回作成したストレージに変更します。
    default
    config: {} description: Default LXD profile devices: eth0: name: eth0 network: lxdbr0 type: nic root: path: / pool: default type: disk name: default used_by: []

    私は下記のように設定しました。


    config: {} description: Default LXD profile devices: eth0: name: eth0 network: lxdbr0 type: nic root: path: / pool: lxdfs type: disk name: default used_by: []

    設定変更後は同じコマンドで変更が保存されてるか確認してください。(私はよく保存を忘れます。。。)

    この段階でstorage listを確認するとUSED BYが前回と変わっています。

    lxc storage list
    +---------+--------+--------------------------------------------+-------------+---------+---------+ | NAME | DRIVER | SOURCE | DESCRIPTION | USED BY | STATE | +---------+--------+--------------------------------------------+-------------+---------+---------+ | default | btrfs | /var/snap/lxd/common/lxd/disks/default.img | | 0 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+ | lxdfs | btrfs | 780e0376-19ad-490f-b373-fa5728a22dfc | | 1 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+
  3. 不要になったLxdストレージの削除
    lxc storage deleteでストレージを削除します。
    コマンド
    lxc storage delete ストレージ名

    私は今回下記を実行しました。成功するとdeletedと表示されます。

    
    ubuntu@ubuntu:~$ lxc storage delete default
    Storage pool default deleted
    

    storage listを確認するとストレージが削除されています。

    lxc storage list
    +-------+--------+--------------------------------------+-------------+---------+---------+
    | NAME  | DRIVER |                SOURCE                | DESCRIPTION | USED BY |  STATE  |
    +-------+--------+--------------------------------------+-------------+---------+---------+
    | lxdfs | btrfs  | 780e0376-19ad-490f-b373-fa5728a22dfc |             | 1       | CREATED |
    +-------+--------+--------------------------------------+-------------+---------+---------+
    

【Ubuntu】【Lxd】Lxdの初期設定


Lxdの初期化設定方法を記載します。

* ①Lxd のインストール

  1. Lxdをインストールする
    sudo snap install lxd
    sudo apt install lxd-client

* ②Lxdの初期化

  1. Lxd initの実行
    ubuntu@ubuntu:~$ lxd init
    Would you like to use LXD clustering? (yes/no) [default=no]:
    Do you want to configure a new storage pool? (yes/no) [default=yes]:
    Name of the new storage pool [default=default]:
    Name of the storage backend to use (btrfs, dir, lvm, ceph) [default=btrfs]:
    Create a new BTRFS pool? (yes/no) [default=yes]:
    Would you like to use an existing empty block device (e.g. a disk or partition)? (yes/no) [default=no]:
    Size in GB of the new loop device (1GB minimum) [default=5GB]:
    Would you like to connect to a MAAS server? (yes/no) [default=no]:
    Would you like to create a new local network bridge? (yes/no) [default=yes]:
    What should the new bridge be called? [default=lxdbr0]:
    What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
    What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
    Would you like the LXD server to be available over the network? (yes/no) [default=no]:
    Would you like stale cached images to be updated automatically? (yes/no) [default=yes]:
    Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
    

    特にこだわりがなければdefaultでOKです。