Kubernetes 1.17にしたら起動しなくなった時

Kubernetesのパッケージを一部ホールド(apt-mark hold)し忘れて1.17にアップグレードしちゃいました。そしたら、Nodeが起動しなくなっちゃいました。

$ kubectl get node
NAME      STATUS     ROLES    AGE   VERSION
testvm1   NotReady   master   46d   v1.17.0

kubectl describeでノードの状態を調べると以下のようなログが出てました。

$ kubectl describe node testvm1
略
 Failed to initialize CSINodeInfo: error updating CSINode annotation:  timed out waiting for the condition; caused by: the server could not  find the requested resource 
“Kubernetes 1.17にしたら起動しなくなった時” の続きを読む

SSHの環境変数を利用してiptablesのポートを解放する

安いVPSなどを借りて、普段はSSHだけ解放しといて、SSH以外のポートは自宅(社内)からのみアクセスできるようにしたいと思いました。

アクセス元のIPが固定であれば特に問題ないのですが、動的に割り当てられる環境だと毎回変わってしまうので、SSHの環境変数を利用して、SSHログイン後に実行するとフィルターが解除されるような次のスクリプトを作ってみました。

#!/bin/bash
IP=`env | grep SSH_CLIENT | sed ‘s/SSH_CLIENT=\([0-9\.]*\) .*/\1/’`
sudo sed -i’.old’ -e “/–dport 80/c\-A INPUT -m state –state NEW -m tcp -p tcp -s ${IP} –dport 80 -j ACCEPT” /etc/sysconfig/iptables
sudo service iptables restart

SSHでログインした後で実行すると、環境変数を参照して「–dport 80」の記述をログイン元のIPからのみHTTPを解放するように変更します。そのため、事前に「–dport 80」に関する何らかの記述がないとエラーになるかもしれません。

その他のポートも解放したければsedの行を増せば良いと思います。

[Ansible] さくらのVPSにCentOS6を再インストール

Ansibleを使って、さくらのVPSにCentOS6を最小パッケージで再インストールするroleです。

roles/sakura-install/tasks/main.yml

– include: kickstart.yml

roles/sakura-install/tasks/kickstart.yml

– name: Download vmlinuz
 get_url: url=”http://ftp.riken.jp/Linux/centos/6/os/x86_64/isolinux/vmlinuz” dest=/boot
 become: yes
 tags: install

– name: Download initrd.img
 get_url: url=”http://ftp.riken.jp/Linux/centos/6/os/x86_64/isolinux/initrd.img” dest=/boot
 tags: install

– name: Copy Kickstart file
 template: src={{ item.src }} dest={{ item.dst }}
 with_items:
 – src: ks.cfg.j2
 dst: /boot/ks.cfg
 tags: install

– name: Configure grub.conf
 lineinfile:
 dest: /etc/grub.conf
 line: “title CentOS 6 install
    root (hd0,0)
    kernel /vmlinuz ro root=LABEL=/ ks=hd:vda1:/ks.cfg
    initrd /initrd.img”
 tags: install

roles/sakura-install/templates/ks.cfg.j2

firewall –enabled –ssh –service=ssh
# Install OS instead of upgrade
install
# Use network installation
url –url=”http://ftp.riken.jp/Linux/centos/6/os/x86_64″
# Root password
rootpw {{ root_password }}
# System authorization information
auth –useshadow –passalgo=sha512
# Use text mode install
text
# System keyboard
keyboard jp106
# System language
lang en_US
# SELinux configuration
selinux –disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging –level=info
# Reboot after installation
reboot
# System timezone
timezone Asia/Tokyo
# Network information
network –bootproto=static –device=eth0 –gateway={{ ansible_default_ipv4.gateway }} –ip={{ ansible_eth0.ipv4.address }} –nameserver={{ nameserver }} –netmask={{ ansible_eth0.ipv4.netmask }} –onboot=on –noipv6 –hostname {{ ansible_nodename }}
# System bootloader configuration
bootloader –append=”console=ttyS0,115200n8r crashkernel=auto” –location=mbr –driveorder=”vda”
# Partition clearing information
clearpart –all –drives=vda
# Disk partitioning information
part /boot –fstype=”ext4″ –size=500
part pv.00 –grow –size=1

volgroup vg_00 –pesize=4096 pv.00
logvol / –fstype=ext4 –name=lv_root –vgname=vg_00 –grow –size=1024 –maxsize=102400
logvol swap –name=lv_swap –vgname=vg_00 –grow –size=512 –maxsize=2048

%packages –nobase
@core

%end

ks.cfg.j2中にroot_passwordを変数で設定していますが、これはvars/main.ymlにべた書きするか、ansible-vaultコマンドで暗号化して保存しておいてください。

このroleを実行後に再起動すれば、自動的に再インストールが始まります。

Linux(Cent OS)上のParallels Toolsをアンインストールする

急にParallels Toolsがおかしくなって、Xの起動時に画面が真っ暗になって起動しなくなりました。

Parallels Toolsを再インストールしようとしても、「処理」メニューには「Parallels Toolsの再インストール」ってメニューは 表示されるものの、選択してもイメージはマウントされず、困り果ててました。

いろいろ調べたところ、以下のコマンドでParallels Toolsをアンインストール出来ました。

$ sudo /usr/lib/parallels-tools/install -r

uninstallに成功後に再起動すると、再度「処理」メニューに「Parallels Toolsのインストール」が表示されるようになり、一からインストールすることが出来ました。