想知道是否有可能在vagrant ssh
进入虚拟机后自动运行脚本或执行命令?我知道Ansible可以提前进行安装和设置。但它不能允许在进入机器后自动执行任务。
我目前正在创建一个文件script.sh
,通过Ansible将该文件提供给vagrant。在我通过vagrant ssh
进入虚拟机之后,我使用bash script.sh
来运行脚本。是否有更好的方法?
欢迎提出任何建议。
有两种方法可以实现这个目标,
假设您的脚本位于vagrant主目录中,例如:
:~$/home/vagrant/test-me.sh
1) 通过ssh运行命令
1a) vagrant ssh -- -t '/home/vagrant/test-me.sh; /bin/bash'
**-OR-**
1b) vagrant ssh -c '/home/vagrant/test-me.sh; /bin/bash'
2) 在~/.bashrc文件中追加完整的脚本路径(如果您以用户vagrant登录,则该文件应位于vagrant家目录中)
:~$echo '. /home/vagrant/test-me.sh' >> ~/.bashrc
~/.bashrc
的末尾添加bash script.sh
命令,即执行echo 'bash script.sh' >>~/.bashrc
。 - heemayl