Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

28. vagrant 操作 => mysql、防火墙、端口映射 #28

Open
ly525 opened this issue Feb 21, 2017 · 0 comments
Open

28. vagrant 操作 => mysql、防火墙、端口映射 #28

ly525 opened this issue Feb 21, 2017 · 0 comments

Comments

@ly525
Copy link
Owner

ly525 commented Feb 21, 2017

原文链接: #28
应用场景: 本地开发机器是mac或者Linux、windows,需要模拟发布到centos服务器的流程

注意执行该命令位置(pwd) /home/someone/

  1. 已有box, 位置: /home/someone/centos.box

  2. vagrant box add --name centos_for_dev /home/someone/centos.box

  3. vagrant init centos_for_dev

  4. 会发现在 /home/someone/有一个文件 VagrantFile

  5. vagrant up && vagrant ssh 登录centos_for_dev 机器

  6. 自动登录, 用户名和密码都是 vagrant

  7. 端口映射

    1. 场景: 需要在vagrant中开启mysql,供host机器访问
    2. config.vm.network "forwarded_port", guest: 8000, host: 3306 其中host为宿主机(比如widdows或者mac机器),guest为vagrant内的虚拟机。
    3. 这样在本地访问执行mysql -u root -p的时候,访问本地3306端口的mysql,实际上访问的是vagrant中的端口为8000的mysql
    4. vagrant reload 重新加载配置文件
    5. vagrant up 启动机器,vagrant ssh登陆机器之后执行下面操作
    6. sudo vim /etc/sysconfig/iptables 编辑防火墙,开启8000端口,供外部访问
    7. -A INPUT -p tcp -m tcp --dport 3306 -m state --state NEW -j ACCEPT
    8. 重启防火墙 service iptables restart
  8. 文件映射

    1. 场景: dev环境: Mac 或 windows, production环境: centos。需要针对服务器制定一些脚本或者目录,方便部署。因此需要将dev代码目录映射到vagrant目录,实现dev改了代码之后,和production环境(vagrant,生产环境)代码保持一致,方便调试。不用再使用scp或rsync更新代码了。
    2. config.vm.synced_folder "/home/someone/code/", "/opt/code"
    3. 这样宿主机的/home/someone/code/目录下的代码修改了之后,vagrant虚拟机的/opt/code目录下的代码会同步更新,或者说二者指向同一份文件
    4. vagrant reload 重新加载配置文件
  9. scp 同步文件

    vagrant plugin install vagrant-scp
    scp -P 2222 your_file vagrant@127.0.0.1:/home/vagrant/
  10. vagrnat up 开机

  11. vagrant halt 关机

  12. 创建新用户centos

    1. 在Vagrant机器中 useradd centos 创建centos用户。
    2. 在Vagrantfile中,添加配置config.ssh.username = "centos"

更多参见官网文档 Get Started

Vagrant 集群配置

  1. https://kiwenlau.com/2016/07/03/vagrant-vm-cluster/
  2. wait for option choice.  hashicorp/vagrant#6796
  3. 关键配置
    1. 其中需要主要的是网卡相关配置
    1. node.vm.network "public_network", ip: "10.10.30.#{200+i}", bridge: "en0: Wi-Fi (AirPort)"
    2. ip 与 ifconfig 中主要的实际使用使用的网络在同一个网段即可,200+是因为200以后的 IP 多数没有被占用
    3. bridge 使用 networksetup -listallhardwareports 查看;关键字List All Network Hardware from the Command Line in OS X
    1. 设置虚拟的box node.vm.box = "/Users/someone/workspace/vagrant-boxs/centos7_test.box"
    1. 可以是 虚拟机 box 的绝对路径
    2. vagrant 市场中的名称
    3. 和 Vagrantfile 在同一个文件夹中 node.vm.box = "centos7_test.box"
@ly525 ly525 added the Updating label Aug 19, 2017
@ly525 ly525 changed the title 28. vagrant 操作 28. vagrant 操作 => mysql、防火墙、端口映射 Oct 20, 2017
@ly525 ly525 added the Linux label Oct 21, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant