ラズパイにVNCを導入した話の2弾になります。
前回のおさらい
前回の記事はこちら→ラズパイにVNCを導入した①
RealVNCを使ってみる
最初に前回の記事の共通事項を確認してvimのインストールまで終わらせます。
次にRealVNCはアプリケーションをインストールする必要があります。
下記リンクから自分のOSに合わせてダウンロードして下さい。
https://www.realvnc.com/en/connect/download/viewer/
ここからは手動操作になります。
ラズパイを起動→左上ラズベリーマークをクリック→設定→Rasberry Piの設定→インターフェイス→VNCをオンにする
これでVNCの起動ができました。
また以下の方法でもVNCの起動が可能です。
ラズパイの設定を開くコマンド
$ sudo raspi-configこれを打ち込めば設定画面が出てくるので
Interface option→VNC→Yesを選んでVNCを起動します。
またもっと簡単な方法として
ターミナルで
$ sudo raspi-config nonint do_vnc 0
上記を打ち込めばVNCをオンにすることができます。
これで先ほど入れたRealVNCを起動させ、
IPアドレスで繋げます。
ansibleについて
主に.ymlファイルと.runファイルを使い、動かすだけでラズパイの設定ができるようにしています。
01-authorizekey
SSH公開鍵を管理するためのansible
これをすると、複数のユーザーがラズパイに接続できるようになる
playbook.yml
---
- hosts: servers
gather_facts: no
tasks:
- authorized_key:
user: "{{ ansible_ssh_user }}"
key: "{{ lookup('file', 'present-keys.pub') }}"
state: present
- authorized_key:
user: "{{ ansible_ssh_user }}"
key: "{{ lookup('file', 'absent-keys.pub') }}"
state: absent
presentkeyは追加する鍵、absentkeyは削除する鍵
02-crontab
毎月1日の午前6時にシステムの更新と再起動を行う。
crontab.yml
---
- hosts: servers
tasks:
- copy:
src: crontab
dest: "{{ ansible_env.HOME}}/.crontab"
owner: "{{ ansible_ssh_user }}"
group: "{{ ansible_ssh_user }}"
mode: 0644
- shell: crontab {{ ansible_env.HOME}}/.crontab
crontab
0 6 1 * * sudo bash -c "apt update -y && apt upgrade -y && apt autoremove -y && reboot now" >> ${HOME}/cronlog/system-update.log 2>&1
03-install-package
パッケージ一覧の更新、パッケージの更新、vimのインストール、不要になったパッケージの削除を行います。
install-package.yml
- hosts: servers
remote_user: pi
become: True
tasks:
- name: apt update
apt:
update_cache: yes
- name: apt upgrade
apt:
upgrade: yes
- name: apt install vim
apt:
name: vim
state: present
- name: apt autoremove
apt:
state: absent
purge: yes
autoremove: yes
これであとはsshに接続し、VNCの設定をするために以下のようなコマンドを打ち込みます。
VNCをオンにする
sudo raspi-config nonint do_vnc 0
VNCの解像度を1280×1024にする
sudo raspi-config nonint do_vnc_resolution 1280x1024
これで簡単に複数のユーザーがVNCを使えるようになりました。
[やってみてわかったこと]
上記のsudoコマンドをansible化する予定だったが、ansibleの仕様上なのか、うまくいかなかった。
(非対話型なのが関係している?)
今回の検証でラズパイを3回使えなくしました。。TT けど勉強になったし楽しかったです!