ここは何?

その昔、東の電話やさんでD-Mailの中の人だった時代にKemaNetというソフトウェアを作っていた人のサイトです。
(ちなみに今は国際的な電話やさんで、法人向け雲【基本】の仕事をしてます。)
(のあと、未来とつなぐ電話やさんの研究所で雲作ったらそれはそれで大変です)
(のあと、再び国際的な電話やさんで別の雲を作りましたがもう雲を作るのは飽きました)
(2018.02.01 ふたたびバリューパートナーな電話やさんの研究所に戻りました)

にスポットライトを当てるためのサイトです。

最近では 鮨ドラ の普及活動なんかもやっているそうです。

Blogっぽいもの

<< 2026.1 >>
[Stories]
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

2026/1/10 (土)

vm/virbr0のip固定

概要

実践例

コピペ用の文字列を生成

$ for i in $(seq -w 10 20); do echo "      <host mac='52:54:00:ff:ff:$i' name='vm$i' ip='192.168.122.$i'/>"; done
      <host mac='52:54:00:ff:ff:10' name='vm10' ip='192.168.122.10'/>
      <host mac='52:54:00:ff:ff:11' name='vm11' ip='192.168.122.11'/>
      <host mac='52:54:00:ff:ff:12' name='vm12' ip='192.168.122.12'/>
      <host mac='52:54:00:ff:ff:13' name='vm13' ip='192.168.122.13'/>
      <host mac='52:54:00:ff:ff:14' name='vm14' ip='192.168.122.14'/>
      <host mac='52:54:00:ff:ff:15' name='vm15' ip='192.168.122.15'/>
      <host mac='52:54:00:ff:ff:16' name='vm16' ip='192.168.122.16'/>
      <host mac='52:54:00:ff:ff:17' name='vm17' ip='192.168.122.17'/>
      <host mac='52:54:00:ff:ff:18' name='vm18' ip='192.168.122.18'/>
      <host mac='52:54:00:ff:ff:19' name='vm19' ip='192.168.122.19'/>
      <host mac='52:54:00:ff:ff:20' name='vm20' ip='192.168.122.20'/>

virsh net-edit default で、上記を <dhcp> 要素の下に追加(省略)
追加後の状態を表示するとこう

$ virsh net-dumpxml default --inactive
<network>
  <name>default</name>
  <uuid>b4adef5f-bcc2-484a-96fc-d66f792930a5</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:20:fe:58'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
      <host mac='52:54:00:ff:ff:10' name='vm10' ip='192.168.122.10'/>
      <host mac='52:54:00:ff:ff:11' name='vm11' ip='192.168.122.11'/>
      <host mac='52:54:00:ff:ff:12' name='vm12' ip='192.168.122.12'/>
      <host mac='52:54:00:ff:ff:13' name='vm13' ip='192.168.122.13'/>
      <host mac='52:54:00:ff:ff:14' name='vm14' ip='192.168.122.14'/>
      <host mac='52:54:00:ff:ff:15' name='vm15' ip='192.168.122.15'/>
      <host mac='52:54:00:ff:ff:16' name='vm16' ip='192.168.122.16'/>
      <host mac='52:54:00:ff:ff:17' name='vm17' ip='192.168.122.17'/>
      <host mac='52:54:00:ff:ff:18' name='vm18' ip='192.168.122.18'/>
      <host mac='52:54:00:ff:ff:19' name='vm19' ip='192.168.122.19'/>
      <host mac='52:54:00:ff:ff:20' name='vm20' ip='192.168.122.20'/>
    </dhcp>
  </ip>
</network>

networkを再起動(停止+起動)
既存のリース情報があれば削除しておきます

# network 停止
sudo virsh net-destroy default

# leases を削除
sudo rm -f /var/lib/libvirt/dnsmasq/default.leases
sudo rm -f /var/lib/libvirt/dnsmasq/default.status 2>/dev/null || true
sudo rm -f /var/lib/libvirt/dnsmasq/virbr0.status 2>/dev/null || true

# network 起動
sudo virsh net-start default

vm起動時にmacアドレスを指定

virt-install \
  --network network=default,model=virtio,mac=52:54:00:ff:ff:10 \
(以下略)

vm起動後に確認

$ virsh domifaddr vm10 --source lease
 名前     MAC アドレス     プロトコル     アドレス
-------------------------------------------------------------------------------
 vnet13     52:54:00:ff:ff:10    ipv4         192.168.122.10/24

2026/1/9 (金)

mr/OCS52非対応ターミナルでtmux

標準入力をクリップボードに書き込めるコマンド(xselやxclipなど)を用意して、
.tmux.conf にこれを書きます

# コピーしたらクリップボードにも反映
bind-key -T copy-mode-vi y     send -X copy-pipe-and-cancel "xsel -ib"
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "xsel -ib"

2025/12/25 (木)

vm/podman入れたあと

podman api の常時起動

systemctl --user enable --now podman.socket
loginctl enable-linger $USER

こうしておけば docker compose コマンドを podman api 経由で実行可能になる

DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock docker compose up -d

80番以上のポートを非特権ユーザーに開放

rootless podman/docker に優しい仕様

echo "net.ipv4.ip_unprivileged_port_start=80" | sudo tee /etc/sysctl.d/99-podman-ports.confsudo sysctl --system

net.ipv4.ip_unprivileged_port_start=0 にすると、全ポートを非特権ユーザーに開放できる

SELinux やファイアウォールまで考慮するとこんな感じになる

# カーネルに非特権ユーザーに全ポートを使わせる
echo "net.ipv4.ip_unprivileged_port_start=0" | sudo tee /etc/sysctl.d/99-podman-ports.confsudo sysctl --system

# SELinux にコンテナプロセスのネットワークポートバインドを緩和させる
sudo setsebool -P container_connect_any 1

# 実際に使うポートが SELinux に定義済みかを確認
sudo semanage port -l

# 未定義だった場合は SELinux に定義追加
sudo semanage port -a -t 適切なタイプ -p tcp ポート番号

# 外部から待ち受けする場合はファイアウォールの穴あけも実施する
# firewalld の場合
sudo firewall-cmd --add-port=ポート番号/tcp --permanent
sudo firewall-cmd --reload

quay.ioを黙らせる

二度とこうやって聞いてこないよう、docker.io に決め打ちしたいのです

$ podman run --rm redis:6.0 redis-server
? Please select an image:
  ->docker.io/library/redis:6.0
    quay.io/redis:6.0

手順

ユーザー毎の registries.conf にリポジトリを docker.io だけ指定します

conf_src="/etc/containers/registries.conf"
conf_user="$HOME/.config/containers/registries.conf"
[ -d "${conf_user%/*}" ] || mkdir -p "${conf_user%/*}"
sed '/^unqualified-search-registries.*quay.io/s/=.*/= ["docker.io"]/' "$conf_src" |
sed '/^registries.*quay.io/s/=.*/= ["docker.io"]/' >"$conf_user"

もとに戻したい場合

rm $HOME/.config/containers/registries.conf

2025/10/23 (木)

mr/byebye_copilot

VSCodeでcopilotが自動的に出ないようにしたい

byebye_copilot.png

2025/10/22 (水)

#include(): Limit exceeded: mr/adblock_list

2025/10/19 (日)

#include(): Limit exceeded: mr/usb_on_emergency_rescue

2025/10/8 (水)

#include(): Limit exceeded: mr/ubuntuでvlan

2025/8/7 (木)

#include(): Limit exceeded: mr/バックライトLEDの消し方

2025/7/18 (金)

#include(): Limit exceeded: sh/func/lyric

2025/5/30 (金)

#include(): Limit exceeded: scr/rec_radiko_tsで追っかけ再生

2025/5/28 (水)

#include(): Limit exceeded: scr/最速miniforge

2025/4/10 (木)

#include(): Limit exceeded: scr/ネットラジオの番組表をgrepしたい

2025/3/27 (木)

#include(): Limit exceeded: mr/vimで全角記号を全角にする

2025/1/20 (月)

#include(): Limit exceeded: scr/radish-play.shを修正

2025/1/15 (水)

#include(): Limit exceeded: mr/windows-terminal

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS