第30天了,来聊聊 vm/虚拟机 ...
如果只是想练习Linux的CLI,一定要在GCP上开instance吗?
其实有很多工具可以先让开发者在本地开发环境进行作业,例如Vagrant。甚至是容器化开发环境的 Laradock。
因为前面都在使用GCE,基本上都是纯命令列介面(Command-Line Interface,CLI),像这样
从 masOS介面移转过来时难免会有些不习惯,毕竟Google Cloud Platform 免费额度有限,虽然有都市传说开一台instanece几分钟内删掉就不用钱的都市传说。但还是建议有些 Linux指令练习可以先透过一台vm去在本地开发时做练习。
友人推荐使用 Vagrant,用起来确实蛮顺手的,建议可以玩玩看。熟练後在 GCE就可以开小一点规格的instance,加大虚拟记忆体,就可以顺畅地部署 side project,本篇也会介绍Linux如何执行swap的部分。
Vagrant 底层还是透过 virtual box 这套虚拟机管理工具建构。
因此可先至 virtualbox官网 下载开发环境。
https://www.vagrantup.com/downloads
vagrant -v
Vagrant 2.2.9
vagrant 提供许多客制化的开发环境,例如ubuntu、centOS等。
官网提供许多参考,https://app.vagrantup.com/boxes/search
vagrant box list
==> vagrant: A new version of Vagrant is available: 2.2.10 (installed version: 2.2.9)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
ubuntu/trusty64 (virtualbox, 20190514.0.0)
选择启动哪一个box vagrant init ubuntu/trusty64
开始启动 vagrant up
进入vm vagrant ssh
关闭vm vagrant halt
重启vm vagrant reload
删除vm vagrant destroy
在某些side project可能储存空间需求不大,但vm记忆体太少时可能会有安装环境上的问题,e.g. MySQL基本安装需要一定的RAM,
以下是透过vm练习切割虚拟记忆体的步骤与说明。
先检查记忆体配置状态 free -m
建立并前往 swap资料夹
mkdir -p /var/swap
cd /var/swap
** Generate swap file 设定虚拟记忆体大小**
//1M * 2000 ~= 2GB of swap memory
dd if=/dev/zero of=swapfile bs=1M count=2000
swap相关指令
建立 Linux swap area
mkswap /home/vagrant/swapfile
调整系统设定
``sudo vi /etc/fstab``
```
/home/vagrant/swapfile swap swap defaults 0 0
```
允许装置与档案 paging 与 swapping
``sudo swapon -a``
重开vm後再检查记忆体状态
透过 30天的文章,分享我在使用Laravel开发与部署GCE的经验。
还有一些东西没分享到, 例如可以第三种登录时建立token的方式JWT、第三方登入分别使用内建的 Socialite或原生服务的Oauth机制、寄信验证机制的 Mail trap、如果想自己刻画面用blade.php、怎麽在同一份专案前後端分离时call 自己的API...等等。
重新写成铁人赛的过程中,也是重新检视自己学习状况。希望来年还有机会再参加铁人赛。
参考资料
https://www.vagrantup.com/docs/cli/destroy
https://blog.csdn.net/boling_cavalry/article/details/99702719
https://yuanchieh.page/posts/2020-04-12_vagrant-教学-一键启动配置开发环境
https://ithelp.ithome.com.tw/articles/10202559
https://stackoverflow.com/questions/20667761/composer-killed-while-updating
http://leadtosilverlining.blogspot.com/2019/04/add-swap-to-vm-instance-of-gcp.html
https://exfast.me/2018/11/linux-added-virtual-memory-swap/
https://askubuntu.com/questions/898941/how-to-check-ram-size
https://www.itread01.com/p/148373.html
今天要介绍netmask,是可以让我们自由转换各种不同表示类型的网路地址以及子网遮罩,在划分子网路的...
func1.h #ifndef _FUNC1_H_ #define _FUNC1_H_ void f...
客户:「我希望这个东西可以帮我洗碗」 我:「这个需求简单明了」 客户:「」 这个时候就需要Wiref...
前言 平常我们使用的渐层方式通常都是在drawable用Xml配置参考 或者是在程序中设置Paint...
今天来看看所有appstore商店中的app,从容量最大到最低的排序,好奇容量前五名大的app是什麽...