2016-02-25 2 views
2

Vagrant выполняет мои сценарии как root во время предоставления. Но я хотел бы выполнить в течение времени подготовки некоторые команды в качестве другого пользователя. Это, как я делаю в данный момент:Как выполнять команды как другой пользователь во время подготовки к Vagrant?

su - devops -c "git clone git://github.com/sstephenson/rbenv.git .rbenv" 
    su - devops -c "echo 'export PATH=\"$HOME/.rbenv/bin:$PATH\"' >> ~/.bash_profile" 
    su - devops -c "echo 'eval "$(rbenv init -)"' >> ~/.bash_profile" 
    su - devops -c "git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build" 
    su - devops -c "echo 'export PATH=\"$HOME/.rbenv/plugins/ruby-build/bin:$PATH\"' >> ~/.bash_profile" 
    su - devops -c "source ~/.bash_profile" 

Но я хотел бы сделать это лучше, что-то вроде этого:

#become devops user here 

git clone git://github.com/sstephenson/rbenv.git .rbenv 
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile 

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build 
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile 
source ~/.bash_profile 

# back to the root user here 

Возможно ли это? Спасибо!

ответ

1

Если вы хотите иметь встроенный сценарий вместе с остальными, вы можете использовать последовательность команд, такую ​​как следующее.

sudo -u devops /bin/sh <<\DEVOPS_BLOCK 
# Become devops user here 
id 
whoami 
# Back to the root user here 
DEVOPS_BLOCK 
2

при выполнении инициализации, его правда, что бродяга будет работать как корень по умолчанию, вы можете изменить это поведение, делая положение как

config.vm.provision "shell", privileged: false blablabla 

бродяга затем будет использовать определенный пользователь, как config.ssh.username, если его не набор, его бродяга пользователя по умолчанию

Если у вас есть несколько пользователей в системе и все еще хотите использовать другой пользователь, то, что я хотел бы сделать, это написать скрипт и выполнить сценарий, как su -l newuser -c "path to shell script"

+1

не видел настройки привилегированных: ложных, спасибо за это. –

 Смежные вопросы

  • Нет связанных вопросов^_^