GithubHelp home page GithubHelp logo

wslhost's Introduction

WSLHOST (Windows subsystem for linux host)

Esse projeto pode ser utilizado com multipass, WSL e WSL2, ou outros bash para windows que possuam o disco do windows montado.

Objetivo

Esse pequeno projeto tem como objetivo abrir o arquivo de hosts do windows pelo bash e escrever o ip do linux, sempre que o ambiente for iniciado, inicialmente o projeto foi feito pois o serviço em go wsl2host não funcionou comigo.

Requisitos

  • WSL 1 ou 2 (Windows subsystem for linux ativado):
    • OBS.: A instalação do WSL2 é similar mas requer a build do windows que estará disponível após 28/05/2020
  • Distro linux instalada.
    • A mais popular atualmente é o Ubuntu, porém estou utilizando o Arch-Linux
  • Multipass
    • Instalando o multipass no windows 10 pro: multipass
  • Python instalado na versão 3.6+
    • Recomendo utilização do projeto anaconda, ou miniconda, porém é opcional pois a maioria das distros já possuem python.

Estrutura

A estrutura do projeto.

wslhost
├── README.md
├── source
│   └── wslhost.py
└── wslhost.sh

Como usar

A forma mais simples de usar é executando o shell script wslhost.sh

path/./wshost.sh --hp path/hostsfile --bn bash_name

ou

bash path/wshost.sh --hp path/hostsfile --bn bash_name

Modo automatico bashrc

Para que o arquivo seja executado ao iniciar o shell wsl seja ele ubuntu ou qualquer distro, basta passar o caminho pro shell script no .bashrc do seu perfil.

Ex.:

vim ~/.bashrc

e adicione as seguintes linhas troque "path" pelo caminho até o arquivo wslhost.sh obs.: as reticencias no exemplo são apenas ilustrativas.

export WSLHOST=path/wslhost.sh
...
alias wslhost="bash $WSLHOST --hp path/hosts --bn bash_name"
...
wslhost

agora sempre que você abrir um shell do wsl ele ira mapear o ip para o seu hostfile do windows, agora basta subir seus serviços e acessar no browser seguinte a estrutura abaixo.

bash_name:PORTA

Ex.:

arch.local:8888
ubuntu.local:8888

OBS.: A porta de exemplo é do jupyter-lab

Contribuições

Todas as contriuições sugestões e criticas(construtivas) serão bem vindas.

Obrigado!!!

wslhost's People

Contributors

marcosjrvrael avatar

Watchers

 avatar  avatar

wslhost's Issues

Permitir utilizar mais de um bash ao mesmo tempo

Permitir utilizar o WSL e o Multipass ao mesmo tempo,
Hoje o arquivo hosts recebe sempre o mesmo nome

127.0.0.1 wsl.local

A ideia é que seja passado um parametro que será o nome por exemplo

127.0.0.2 multipass.local 

Assim o hosts ficaria similar ao exemplo abaixo.

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
127.0.0.1 wsl.local
127.0.0.2 multipass.local  

Isso vai permitir que se utilize ambos os softwares e possa mapear serviços e abrir nos navegadores pelo windows.

Automatizar setup do projeto.

Seria interessante se o projeto tivesse um deploy com CLI para pedir os paths e gravar os valores no bashrc

ex.:

make wslhost
"Esse utilitario ira fazer o setup do wslhost em sua distro"
....
hostspath: /mnt/driver/windows/system32/drivers/etc/hosts
wslhostname: wsl.distro

Flexibilizar para usar com multipass ou outros

Flexibilizar o script para que o path do hosts no windows não esteja hardcoded e sim seja um parametro pois assim será possivel usar o script com multipass ou outras formas de bash no windows, que façam a montagem dos discos de formas distintas.

Mudar de

bash wslhost.sh 

para

bash wslhost.sh -hp path/hosts
  • hp = host path

Alteração será realizada na classe python wslhost.py
que hoje possui o endereço do arquivo hosts setado diretamente na variavel path da classe.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.