? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

Geekless.Twitter

Микроблог для лытдыбра

Follow in NewsfeedFollowing

Latest comments:

Add new post

Title

21 hours ago · 2 min read ·
3 comments
Body
Read more

Not found

NetBSD в Vagrant

on May 02, 2019 · 2 min read

Продолжаю пробовать разные виды кактуса. NetBSD 8.0 в виртуалке через Vagrant.


# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.guest = :netbsd
  config.vm.box = "NetBSD/NetBSD-8.0"
  config.vm.box_version = "1.0.0"
  config.ssh.shell = "sh"

  config.vm.define "fp-worker-netbsd-8-0" do |t| end

  config.vm.provider "virtualbox" do |v|
    v.name = "fp-worker-netbsd-8-0"
  end

  config.vm.synced_folder "../shared", "/vagrant", type: "rsync"
  config.vm.provision :shell, :path => "bootstrap.sh", :run => "always"
end

Синхронизация через rsync не пашет:

1. Нет primary-группы vagrant, поэтому мы получаем вот что:

There was an error while attempting to run the post rsync
command for a synced folder. Please inspect the error message
below for more info.

Host path: /media/stuff/vagrant-machines/shared/
Guest path: /vagrant
Error: The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

find /vagrant '!' -type l -a '(' ! -user vagrant -or ! -group vagrant ')' -exec chown vagrant:vagrant '{}' +

Stdout from the command:



Stderr from the command:

find: -group: vagrant: no such group

А потому что это вам не Linux:

$ id
uid=1000(vagrant) gid=100(users) groups=100(users),0(wheel)

Ладно, победили:

# groupadd -g 1000 vagrant
# usermod -g vagrant vagrant
# usermod -G users vagrant

$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant),0(wheel),100(users)

2. Однохренственно не пашет, теперь так:

There was an error while attempting to run the post rsync
command for a synced folder. Please inspect the error message
below for more info.

Host path: /media/stuff/vagrant-machines/shared/
Guest path: /vagrant
Error: The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

find /vagrant '!' -type l -a '(' ! -user vagrant -or ! -group vagrant ')' -exec chown vagrant:vagrant '{}' +

Stdout from the command:



Stderr from the command:

find: chown: No such file or directory

Долго ломал голову, что тут не так. Если команду запускать вручную, всё работает как и должно.

Так, а где у нас chown?

# which chown
/sbin/chown

Правильно — потому что это вам не Linux. Похоже, что /sbin отсутствует в PATH при вызове команды.

Воспроизводим баг:

# export PATH=/bin:/usr/bin
# localhost# find /vagrant '!' -type l -a '(' ! -user vagrant -or ! -group vagrant ')' -exec chown vagrant:vagrant '{}' +
find: chown: No such file or directory

А какими путями Vagrant исполняет эту команду в гостевой VM? В /var/log/authlog видно только это:

May  2 05:09:14 localhost sudo:  vagrant : TTY=unknown ; PWD=/home/vagrant ; USER=root ; COMMAND=/bin/sh

Воспроизводим с хоста:

$ vagrant ssh -c 'sudo /bin/sh'
# echo $PATH
/usr/bin:/bin:/usr/pkg/bin:/usr/local/bin

Пробуем подкрутить параметры в /etc/login.conf. Там уже даже есть нужный конфиг, нужно только раскомментировать:

default:\
        :path=/usr/bin /bin /usr/sbin /sbin /usr/X11R7/bin /usr/pkg/bin /usr/pkg/sbin /usr/local/bin:

И наконец-то rsync начинает работать.

0 Comment:

user_name1 day ago
Reply
Body
This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More