Ubuntu(サーバー版)を無線LANに接続しようとした時に犯した失敗5選

##概要
Ubuntu Server 18.04 LTSを無線LANに接続しようとした時にviエディタを使ったのですが、ちょくちょく怒られたのでそれらのミスと解決策5つを紹介します

##前提
- Ubuntu Server 18.04 LTSを使ってます
- PC本体はSONYのVAIOです。
- 下の記事を参考にNetplanでネットワーク設定をしようとしています。
- viエディタで編集してます

参考にした記事┐
[Ubuntu Server 18.04 LTSの無線LAN接続(リンク)](https://qiita.com/Aton-kish/items/e06d87626b21e21c1e33)

##失敗5選

###1. 編集内容を保存できない。
今回編集するのは"/etc/netplan/50-cloud-init.yaml"です。
これをviエディタで開くことで、Netplanの編集を行うことができ、有線・無線LANの設定もできます。

viコマンドで編集します。

```
vi /etc/netplan/50-cloud-init.yaml
```

するとviエディタの編集画面が開きます。

```
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:{}
    version: 2
```
デフォルトはこのようになっているかと思います。
これを編集していきました。

しかし、編集し保存しようと「:w」を押したところ、さっそく問題が発生しました。

![IMG_2011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280415/8d0bdb73-5a2b-08c8-d6f8-bd8bcdc4689b.jpeg)

こちらのエラーが出ました。内容としては「閲覧専用になっているよ」とのこと

これを回避するために以下のように書き換えました。

```
:w !sudo tee %
```
完全にコピペしたので、意味はよくわからないのですが、こちらを書いてEnterを押していったら、ちゃんと保存されました。

<br>
###2. 「inconsistent indent」のエラー

編集を行い、設定完了のために次のコマンドを入力します。

```
sudo netplan apply
```
これを書くことで設定完了されるとのことですが、ここで

![IMG_2414.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280415/6b143274-bbcb-b5cd-1490-605bfd6a4bcb.jpeg)

「wifis:」の値の前あたりのインデントで注意されました。
インデントを揃えたらエラーは消えました。

viはインデントに厳しいようですので、気をつけてください。

<br>
###3. 「did not find expected ',' or '}'」のエラー
![IMG_5099.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280415/38a2241a-6bb4-e10d-39e8-eaa76c98b723.jpeg)


一個前のエラーを回避してすぐに、こちらのエラーが出ました。
内容としては、「','か'}'がないといけないけど、見つからないぞ」ということ。

「それって、入力する必要あるのか？」と思い、ちょっと調べてみると
「','や'}'」の有無の問題なのですが、そもそもの書き方がよくなかったようです。
![スクリーンショット 2020-01-03 16.14.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280415/9fcee13a-e7de-8fc2-e394-800e05634ef4.png)

上で書いた、このethernets:の後の「{}」は必要ないのに、ご丁寧にこの「{}」の中にコードを書いてしまっていたようです。

この「{}」を削除することで、このエラーは回避できました。
ちょっと分かりづらいですが、気をつけてください。


<br>
###4. 接続するデバイスの設定ミス
次に、viでethernetの中に無線LANの設定をしなければいけないのですが、参考にした記事をそのままコピペしてもダメでした。
![スクリーンショット 2020-01-03 16.43.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280415/89b5f256-9a6d-5fdc-251c-eae4bb58964e.png)


こちらをそのままコピペしたのですが、動きません。

なぜかというと、設定しているデバイスの値が違うという理由でした。
「enp5s0」というkeyがデバイスの有線接続のためのkeyで、「wlp9s0」が無線接続のための値なのですが、これは自分の接続しているデバイスのkeyに設定し直さなければいけません。

自分のデバイスのkeyを調べるには以下のコマンドを打ちます。

```
sudo lshw -class network -short
```
で表示されますので、それらの値に書き換えてください。

<br>
###5. IPアドレス・アクセスポイントの書き方のミス

最後にとっておきの凡ミスです。
デバイスのkeyを設定しましたら、自分のwi-fiのSSIDとpasswordを入力しなけらばいけません。

```
 access-points:
                < your-SSID1 >:
                         password: < your-PASSWORD1 >
                < your-SSID1 >:
                         password: < your-PASSWORD2 >
```

このようにviエディタで書いていくのですが、
この時、SSIDとpasswordは「""」で囲っていなければいけません。


```
 access-points:
                "< your-SSID1 >":
                         password: "< your-PASSWORD1 >"
                "< your-SSID1 >":
                         password: "< your-PASSWORD2 >"
```

このようにです。
しかし、抜けてる自分はこの「""」を入れずに動かそうとしていました。
それは動かないですよね。

##終わりに

いかがだったでしょうか？
すごい初歩的な内容も含まれているので、割合として余計な情報多めかもしれませんが、自分の犯した失敗を正直に書いてみました。