CoreOS(Windows 10 + vagrant + VirtualBox) 설치(프록시 환경)

CoreOS(Windows 10 + vagrant + VirtualBox) 설치(프록시 환경)

2022-10-04 last update

10 minutes reading Vagrant Windows10 CoreOS

소개


さくらの VPS 에서 CoreOS(Container Linux) 를 구축하고 놀고 있었습니다만, 내 환경이 22 , 로컬 환경에서 테스트 한 후 シリアルコンソール로 옮기기로 결정합니다. VPS 라고 명중하고 있습니다만, Windows 10 라면 같은 순서로 문제 없다고 생각합니다. 매번, 내 비망록 대신 메모가됩니다.

이전 준비


vagrant 가 더 쉽다고 생각합니다.

Vagrant 설치



최신 버전을 설치하고 명령 프롬프트에서 Docker for Windows를 설치합니다. Hyper-V 환경이므로, 프록시를 설정하고 나서 작업합니다. ( VirtualBoxVagrant + VirtualBox 는. CoreOS 서버의 Plugin
> set HTTP_PROXY=http://xxx.xxx.xxx.xxx:pppp
> set HTTPS_PROXY=http://xxx.xxx.xxx.xxx:pppp
> vagrant plugin install vagrant-winnfsd
> vagrant plugin install vagrant-ignition
> vagrant plugin list

VirtualBOX 설치



최신 버전을 설치합니다.

CoreOS



편지지 얻기



Git에서 Proxy를 가져옵니다.
> cd ~/VMS
> git clone https://github.com/coreos/coreos-vagrant/ coreos
> cd coreos

Vagrantfile 파일 편집



Vagrantfile을 편집합니다. 여기에서는 메모리의 변경과 공유 폴더의 설정을 하고 있습니다. xxx.xxx.xxx.xxx 의 변경이 필요하면 적절히 변경합니다.

Vagrantfile
$vm_memory = 2048
$shared_folders = {'./share' => '/home/core/share'}

CoreOS 구성 파일


pppp를 만들 때 (Proxy)에 IP アドレス의 설정을 적용하기 위해 ポート番号를 만듭니다.

config,ign
{
  "ignition": {
    "version": "2.0.0",
    "config": {}
  },
  "storage": {
    "files": [
      {
        "filesystem": "root",
        "path": "/etc/profile.d/proxy.sh",
        "contents": {
          "source": "data:,export%20http_proxy%3Dhttp%3A%2F%2Fxxx.xxx.xxx.xxx%3Apppp%0Aexport%20https_proxy%3Dhttp%3A%2F%2Fxxx.xxx.xxx.xxx%3Apppp%0Aexport%20ALL_PROXY%3Dhttp%3A%2F%2Fxxxx.xxxx.xxxx.xxxx%3Apppp",
        "verification": {}
         },
        "mode": 420,
        "user": {},
        "group": {}
      }
    ]
  },
  "systemd": {
    "units": [
      {
        "name": "docker.service",
        "enable": true,
        "dropins": [
          {
            "name": "http-proxy.conf",
            "contents": "[Service]\nEnvironment=\"HTTP_PROXY=http://xxxx.xxxx.xxxx.xxx:pppp\""
          }
        ]
      }
    ]
  },
  "networkd": {},
  "passwd": {}
}

CoreOS 시작



명령 프롬프트에서 Vagrantfile를 만듭니다. ( IP アドレス 에서 작업)
(첫회는, CoreOS 의 다운로드등 하기 때문에 잠시 시간이 걸립니다.)
> vagrant up

부팅이 끝나면 vagrant up로 연결할 수 있는지 확인하십시오. 무사히 접속할 수 있으면, Proxy 는 사용하기 어렵기 때문에, config.ingCoreOS 로부터 이용할 수 있도록 합니다.
~/VMS/coreos 의 터미널을 시작한다.
$ alias vagrant='/Pathto/vagrant/bin/vagrant' (vagrant.exe の場所)
$ cd ~/VMS/coreos
$ vagrant ssh-config >> ~/.ssh/config
$ ssh core-01 (設定を変えていない場合)

아마도 연결할 수 있습니다.

CoreOS 설치



어쨌든 넣어 둡니다.
$ sudo mkdir -p /opt/bin
$ sudo -E curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /opt/bin/docker-compose
$ sudo chmod +x /opt/bin/docker-compose

bash 입력 완성 설정



docker container / image 명령 새로 고침 비교 에 정리되어 있습니다만, 커멘드 체계가 변경되었으므로 보완할 수 있도록(듯이) 합니다.
vagrant ssh를 사용하여 설정하지만 vagrant ssh가 환경 변수를 보지 못하기 때문에 MSYS2SSHMsys2의 설정을 추가합니다.
% toolbox
# vi /etc/dnf/dnf.conf
# exit

dnf.conf
proxy=http://xxx.xxx.xxx.xxx:pppp
$ cd ~
$ toolbox dnf -y install bash-completion
$ toolbox cp /usr/share/bash-completion /media/root/var/ -R
$ sudo -E curl -L https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /var/bash-completion/completions/docker
$ sudo -E curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose -o /var/bash-completion/completions/docker-compose
$ source /var/bash-completion/bash_completion
$ cp $(readlink .bashrc) .bashrc.new && mv .bashrc.new .bashrc
$ echo "source /var/bash-completion/bash_completion" >> ~/.bashrc

기타



컨테이너에는, docker-compose 의 설정은 되지 않기 때문에, toolbox 라든지. dnf 라고 하면 좋을지도 모릅니다( Dockerfile reference ).

2017/09/22 추가toolbox도 추가해 두는 것이 좋을지도 모릅니다. 나는 bash의 보완 설정에서 /etc/dnf/dnf.conf를 홈 디렉트 (Proxy)에 가져 왔기 때문에 Proxy에 추가했습니다.

~/.bashrc
export no_proxy="127.0.0.1,localhost,172.17.8.101"
docker run --env=HTTP_PROXY=${HTTP_PROXY} ...docker build --build-arg HTTP_PROXY=${HTTP_PROXY} .NO_PROXY 입니다.
여기까지