为Vagrant提供回应" hello world"是一件轻而易举的事。哎呀,即使我能处理它!
但是当涉及到用户在配置盒子时实际想要做的事情,例如安装mysql,创建数据库和创建mysql用户时......那些事情似乎不太好看上班。 ARRG。
我正在使用虚拟CentOS服务器并安装MySQL顺利完成,但那是关于我遇到众所周知的砖墙的地方。请记住,我可以通过SSH轻松地完成所有这些事情(但当然这会破坏配置的目的):
echo "hello world"; <-- good
sudo yum install mysql-server -y; <-- good
sudo /sbin/service mysqld start; <-- good
sudo mysql create user 'mycooluser'@'%' identified by 'mypassword'; <-- BAD
我&#39;一直在谷歌上搜索所有的地方和最近的I&#39;特地为this article,但由于它是基于Ubuntu的,而不是CentOS的,我得到了马上,因为显然百胜没有按&卡住#39;知道debconf-utils是什么,而apt是。
任何人都可以为我阐明这一点吗?我不认为我的是一个令人发指的用例,我想做的就是拥有shell配置程序
请不要告诉我&#34;使用厨师或木偶&#34;。我已经尝试了,他们有自己的问题,老实说这些简单的要求有点过分。当然这些项目可以通过shell配置程序完成吗?
非常感谢任何见解。你或许可以告诉我自己的结局。
答案 0 :(得分:8)
这是我的Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
$script = <<SCRIPT
set -x
echo I am provisioning...
date > /etc/vagrant_provisioned_at
echo "hello world"
yum install mysql-server -y
/sbin/service mysqld start
mysql -e "create user 'mycooluser'@'%' identified by 'mypassword'"
SCRIPT
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "chef/centos-6.5"
config.vm.provision :shell, :inline => $script
end
vagrant up
应该使用mysql和用户'mycooluser'来获得centos-6.5操作系统。
验证:
完成配置并在centos guest虚拟机操作系统中执行以下操作后, vagrant ssh
到框中。
mysql -uroot
mysql> SELECT User FROM mysql.user;
+------------+
| User |
+------------+
| mycooluser |
| root |
| |
| root |
| |
| root |
+------------+
6 rows in set (0.00 sec)
注意:您可能希望为“mycooluser”授予权限,以便使用mysql shell等登录。
可以找到更多详细信息here。