# vagrant_saltstack **Repository Path**: Crazy_J/vagrant_saltstack ## Basic Information - **Project Name**: vagrant_saltstack - **Description**: vagrant saltstack - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2017-09-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##vagrant_saltstack * F:\vagrant\boxes\js-centos-1.1.0.box * F:\vagrant\js-centos.json * D:\InfraAsCode\provision 1. 在文件夹F:\vagrant\boxes\js-centos-1.1.0.box中按住shift+鼠标右键打开cmd 2. cmd中输入 *vagrant box add js-centos-1.1.0.box --name js-centos *note: name js-centos 对应 vagrantfile中的 config.vm.box = "js-centos-stage" *vagrant box list可以查看所有box 3. open VirtualBox --need run as admin 4. D:\InfraAsCode\provision\vagrant\vagrant-up.bat -- need run as admin 5. VirtualBox中可以看到有个vagrant已经存在并运行中, 如果没有者运行下: *D:\InfraAsCode\provision\vagrant\vagrant-provision.bat -- need run as admin *D:\InfraAsCode\provision\vagrant\vagrant-up.bat -- need run as admin ##putty 登录 vagrant: * 192.168.11.11 vagrant/vagrant * su #进入root * su vagrant #进入vagrant * sudo salt-call --local state.highstate * sudo salt-call --local pillar.get app ##notes: provision/salt 在 vm 中对应的路径 /srv nginx: /etc/nginx/nginx.conf vm文件 /etc/salt/grains ```YAML app: dev: - training ``` 对应的 pillar.get 来源于 * pillar\app\training\init.sls * pillar\app\training\dev.sls 对应vm grains中的dev 取vm中的:salt["grains.get"]("app:local", "") --对应/etc/salt/grains salt["grains.get"]("os", "Unknown") 取pillar中的:salt["pillar.get"]("app:training:text", "nothing") ##打包vagrant: vagrant package --output "box_name" ##增加一个vm: 1. 拷贝D:\InfraAsCode\provision\vagrant to vagrant2 vagrant2 删除.vagrant文件夹, 重命名Vagrantfile文件 运行cmd vagrant init 之前重命名的Vagrantfile改回来, 修改文件中的内容: config.vm.network "forwarded_port", guest: 666, host: 666 最好去掉注释改下, 不然同时开两个好像出现端口占用情况 config.vm.network "private_network", ip: "192.168.11.12" config.vm.hostname = "#{`hostname`[0..-2]}-stage" config.hostmanager.aliases 不用的删了去 运行vagrant-up.bat 2. 查看host文件是否映射正确 3. vm文件 /etc/salt/grains ```YAML app: stage: - training ``` 4. sudo salt-call --local state.highstate ##Practical: 1. install tree: sudo salt-call --local state.sls tree saltenv="local" sudo salt-call --local state.sls tree/fileName saltenv="local" 2. /etc/salt/grains ```YAML app: dev: - training stage: - training ``` 3. run command: sudo salt-call --local state.highstate saltenv=“stage” ##rabbitmq: 启动失败unconnected sudo rm -rf /var/lib/rabbitmq/mnesia/rabbit@{hostname}/cluster_nodes.config vagrant reload sudo salt-call --local state.sls rabbitmq saltenv="local" ##solr: nohup java -jar start.jar >/dev/null & ##ant: /opt/ant ##error: The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! ARPCHECK=no /sbin/ifup eth1 2> /dev/null Stdout from the command: Device eth1 does not seem to be present, delaying initialization. Stderr from the command: 解决方案 虽然vagrant up启动报错,但是vagrant ssh还是能登陆虚拟机的,进入虚拟机后,执行如下命令: sudo rm -f /etc/udev/rules.d/70-persistent-net.rules 对, 问题就处在在持久网络设备udev规则(persistent network device udev rules)是被原VM设置好的,再用box生成新VM时,这些rules需要被更新。而这和Vagrantfile里对新VM设置private network的指令发生冲突。删除就好了。 再次启动就没问题了。。 http://pro.sr1.me/post/android-sdk-download-links $ npm install -g cordova ionic $ #ionic start myApp tabs $ ionic start myApp sidemenu $ cd myApp $ ionic serve android list sdk --all android update sdk -u -a -t 3,6,29 yum install -y glibc.i686 zlib.i686 #yum update libgcc #yum install libgcc.i686 reboot $ #ionic platform add android $ ionic platform add ios $ ionic build ios $ ionic emulate ios netstat -tunlp | grep 80