Skip to content

comefigo/vscode-remote-try-ansible-container

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ansible開発環境 for VSCodeユーザ

VSCodeでAnsible開発環境を構築するもっともスマートな方法を紹介したいと思います(特にWindowsユーザ)
結論から言うと先日発表され話題になったVSCode拡張機能「Remote Development」を用います

手順

以下の手順はDocker+VSCodeになっています Dockerを用いる理由としては環境を汚さないのと、複数環境の同居が容易

  1. Dockerをインストールし、起動する
    共有ドライブを有効にすること!(Windowsの場合は必ずCドライブも追加

  2. VSCode Insidersをインストール
    該当の拡張機能はまだプレビュー版のため、VSCodeのInsiders版を導入する必要があります
    ちょっとだけ試してみたい方はZip版がおすすめ

  3. こちらのサンプルソースをローカルにクローン

  4. VSCodeを起動し、拡張機能「Remote Development」をインストールする

  5. .devcontainer/requirements.txtにansible実行時に必要なpythonライブラリを追加することで、コンテナイメージをビルドする際に取り込まれます

  6. 「Remote-Containers: Open Folder in Container...」で前述のサンプルソースの「.devcontainer」フォルダがあるディレクトリを選択 vscode-remote-open-folder.png

  7. コンテナイメージの自動ビルド、コンテナの作成、拡張機能の自動インストールが行われる

  8. ターミナルを「bash」に切り替えて、ansibleコマンドを使ってみましょう! vscode-remote-open-terminal.png

    > ansible-playbook -i localhost, -c local playbook.yml
  9. enjoy ansible!

環境の再構築

.devcontainer配下の定義を変更したら以下のように環境を再構築

vscode-remote-rebuild-container.png

説明

Docker

.devcontainerフォルダ配下のDockerfileとdevcontainer.jsonによってコンテナの作成と実行が定義されている Dockerfileも既存のまま利用できるので使わない手はないと思います コンテナの起動後にvscode-server-linuxがコンテナ内に導入され、このようなリモート接続が実現されているようです vscode-remote-vscode-server.png

拡張機能

devcontainer.jsonのextensionsで定義されている拡張機能は作成されたコンテナ内にのみ導入されているので、環境に応じて必要最低限の拡張機能で済む vscode-remote-installed-extensions.png また、拡張機能の導入も含めてInfrastracture as a Codeとして管理できるので、手順書の量も減らせられる ちなみにextensionsの名前は拡張機能の以下の箇所で調べることができる(一部導入できないものもある) vscode-remote-extension-name.png

リファレンス

まとめ

「Remote Development」で何が変わるのかを一言でいうとより環境を意識する必要がなくなったと思います 今まではDocker+Ansible構成でansibleが使えるまでにdockerコマンドが度々登場していたが、 上記の手順のようにdockerコマンドは一切出てこない。つまり今までDockerで開発環境を作ったのはいいが、Dockerを知らない人からするとよくわからないから敬遠されがちだった このようにタダのリモート環境として扱えることで抵抗が減るのではないかと思います。もちろん利便性も向上するので、Dockerに慣れている人もどんどん使っていくべきだと思いました

参考

About

VSCode Remote Extension trial for Ansible Container

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published