はじめに
まだまだ新人エンジニア(2年目)です。
前にansible関連はコンテナ化できたのでそれでいきたかったが、Ubuntuにansibleのインストールを急遽行いたい事情ができたため残しておきます。
settingjsonの中身、ansibleの特定のバージョンのインストールに詰まったので紐解いていきます。
経緯
- ansibleを公式の通りにインストール
- ファイルを開くと赤い線が出るのなんで。。
- settig.jsonの中身(yaml.schemas)が原因だと気付く。
- 設定を変えたいけど現状使ってるansibleのバージョンにしないと中身も修正の必要出てくるか。。?
- アンインストール=>インストール
- 最新バージョンインストールしてくれるけど特定のバージョンのインストールの仕方分からん
- 特定のバージョンのインストール
- settig.jsonの中身(yaml.schemas)をなんとかする。。?
この記事で行うこと
ansibleのアンインストール=>ansibleの特定のバージョンのインストール 2.9.6
settings.json : yaml.schemaの修正
ansibleのアンインストール=>インストール
何も入っていなければ飛ばして問題ありません。
このサイト見てアンインストールしました。
https://www.thelinuxfaq.com/ubuntu/ubuntu-17-04-zesty-zapus/ansible?type=uninstall
ansible --version
sudo apt-get purge --auto-remove ansible
以下のコマンドとかでインストール可能なansibleのバージョン見ておくとよい。
[Ubuntu] apt-get まとめ
# どちらかで
$ sudo apt-cache showpkg ansible
$ sudo apt-cache madison ansible
ansible | 5.10.0-1ppa~focal | http://ppa.launchpad.net/ansible/ansible/ubuntu focal/main amd64 Packages
ansible | 2.9.6+dfsg-1 | http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages
# 公式の手順のままインストールする際にバージョン指定
# =2.9.6+dfsg-1をつけなければ最新バージョンインストールしてくる。
$ sudo apt-get install ansible=2.9.6+dfsg-1
$ ansible --version
ansible 2.9.6
~~~
これで特定のバージョンのインストール完了。
次はsetting.jsonの設定を見直してくる。。
settig.json : yaml.schemas
環境にあっていない設定がある。。
Ubuntu への Ansible のインストール
公式みてUbuntsにインストールしたが既にあるファイルを開くと
# 内容
Unable to load schema from 'https://json.schemastore.org/ansible-role-2.9': Request vscode/content failed unexpectedly without providing any details.
まずvscodeのsetting.jsonのyaml.schemasの中身に存在しないURLがありました。
これが問題なければ調べることもなかったかな。。(´;ω;`)
とりあえずURLがないと言われているので消してみる。
するとbecomeの部分がなんか怒られている。もぐら叩きかな
# Incorrect type. Expected "boolean".yaml-schema: Become
become: yes
YAMLのyesはtrueと同じと書かれているサイトがかなりあるので別に書き方に問題があるようには思えない。
VSCodeでYAMLを編集してたらIncorrect type. Expected "string".で似たようなことになってます。
{
"yaml.schemaStore.enable": false
}
構文エラー的なものは表示されなくなった。
外部に良い設定があればyaml.schemasに記載した方が便利だろうなとは思うが一旦力尽きたのでここらにしておきます。たぶん今はYAMLの拡張機能が色々補ってくれているんだろうなーぐらいの認識で申し訳ないですが。。
やるとしたらJSON Schema Storeでansible関連のものを利用して、必要なものは設定する必要があるかと思っていた。
雰囲気的にはこんな感じかと考えてた
{
"yaml.schemas": {
"https://raw.githubusercontent.com/ansible-community/schemas/main/f/ansible.json#/$defs/playbook": "*/playbook.yml",
}
}
最後に
分かったこと
- apt-getは最新版をインストールしてきてくれるが、バージョンインストールも可能。(バージョンの調べ方)
- setting.jsonについて
- あとは全員devcontainerを使うことを私がお祈りしていることでした。
ここまでお読みしてくださりありがとうございました。簡潔に纏めるのは難しいですね(´・ω・)
こういう部分でこけてしまうのが辛いですが、次同じようなことがあってもなんとか出来る気がします。