Vmware虚拟机克隆管理
通过Vmware虚拟机,快速的搭建测试环境,通过可以将多个系统独立,互不影响。Vmware完整克隆,可以快速复制系统环境,避免了重复工作。
克隆后,需要做一些配置,方便使用。
修改HostName,禁用sudo网络校验
1. 修改cloud.cfg文件,否则系统重启时会自动设置为初始化值。
sudo vi /etc/cloud/cloud.cfg
找到preserve_hostname,修改为True
2. 修改hostname文件中的名称
sudo vi /etc/hostname
3. 修改hosts,解决sudo缓慢的问题
原因:Ubuntu Server被设计成一种类似于分布式的操作系统网结构,允许/etc/sudoers中的成员不在本机上。从而sudo时会先从网络上寻找可能的sudoer然后才是本地,而这10s左右的时间就是整个DNS流程的最长时间。(参考:https://ywnz.com/linuxjc/2024.html)
sudo vi /etc/hosts
添加一行:127.0.0.1<TAB>计算机名<TAB>计算机名.localdomain,其中“计算机名“即第2步中的hostname。
配置静态IP地址
在使用NAT模式连接网络时,VMware的默认配置无需做任何修改,虚拟机即可通过主机网络进行访问了。
若需要配置静态IP,则需要做一些配置。
- 在控制面板 - 网络和 Internet - 网络连接中找到“VMware Network Adapter VMnet8” - 属性 - IPv4属性配置,使用固定的IP地址。其中,仅需要配置IP地址和子网掩码。如IP:192.168.88.1,此处的IP地址与虚拟机处于同一个IP段。
- VMware应用菜单 - 编辑 - 虚拟网络编辑器 - VMnet8 - NAT设置,修改子网IP:192.168.88.0, 子网掩码:255.255.255.0,保持与VMware Network Adapter VMnet8配置的IP段一致。
- VMware应用菜单 - 编辑 - 虚拟网络编辑器 - VMnet8 - NAT设置 - 网关IP,设置为192.168.88.2,此处的VMnet8是网络拓扑中的虚拟交换机角色,是虚拟机接入网络时的网关。
- VMware应用菜单 - 编辑 - 虚拟网络编辑器 - VMnet8 - NAT设置 - DHCP设置,设置DHCP规则。
- 修改虚拟机配置,在Ubuntu1804上启用了新的配置方式netplan,系统默认加载/etc/netplan/50-cloud-init.yaml文件配置,配置静态IP时可以直接修改该文件,或添加“01-network-manager-all.yaml”。配置内容如下:
# Let NetworkManager manage all devices on this system network: version: 2 ethernets: #配置名称 ens33: #网卡名称
dhcp4: no #dhcp4关闭 dhcp6: no #dhcp6关闭 addresses: [192.168.88.128/24] # 如果VMware配置中开启了DHCP,此处配置IP地址应在DHCP有效IP段内。 gateway4: 192.168.221.2 # VMware网卡配置中的网关 nameservers: addresses: [192.168.221.1] # 即VMware Network Adapter VMnet8
注意yaml语法,层级之间严格按照空格缩进,每个字段的冒号后必须要有空格。
配置完成后,sudo netplan apply,即时生效。如果使用的是ssh连接,需要使用新IP重新连接。
关于虚拟机网络配置,推荐:https://www.jianshu.com/p/5b8da7a1ad63,很详细。
配置代理,共享主机代理(Shadowsocks)
sudo vim /etc/environment
export all_proxy="http://10.150.149.219:1080" # 此处的IP地址应为主机IP,端口号为Shadowsocks配置端口。
export no_proxy="127.0.0.1, localhost"
配置samba服务
安装samba服务:sudo apt-get install samba
修改samba配置文件:
# 将整个system 文件系统共享,设置为只读,方便后续调试过程中查看文件
[system-readonly]
comment = share for lxd
path = /
browseable = yes
read only = yes
guest ok = no
user = lxd
# 将工作目录共享可读写
[home]
comment = share for lxd
path = /home/lxd/
browseable = yes
writable = yes
guest ok = no
user = lxd
配置完成后,执行:sudo /etc/init.d/smbd restart
samba常用配置参数
[share] # 该共享的共享名 comment = smb share test # 该共享的备注 path = /home/share # 共享路径 allow hosts = host(subnet) # 设置该Samba服务器允许的工作组或者域 deny hosts = host(subnet) # 设置该Samba服务器拒绝的工作组或者域 available = yes|no # 设置该共享目录是否可用 browseable = yes|no # 设置该共享目录是否可显示 writable = yes|no # 指定了这个目录缺省是否可写,也可以用readonly = no来设置可写 public = yes|no # 指明该共享资源是否能给游客帐号访问,guest ok = yes其实和public = yes是一样的 user = user, @group # user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开 valid users = user, @group # 指定能够使用该共享资源的用户和组 invalid users = user, @group # 指定不能够使用该共享资源的用户和组 read list = user, @group # 指定只能读取该共享资源的用户和组 write list = user, @group # 指定能读取和写该共享资源的用户和组 admin list = user, @group # 指定能管理该共享资源(包括读写和权限赋予等)的用户和组 hide dot files = yes|no # 指明是否像UNIX那样隐藏以“.”号开头的文件 create mode = 0755 # 指明新建立的文件的属性,一般是0755 directory mode = 0755 # 指明新建立的目录的属性,一般是0755 sync always = yes|no # 指明对该共享资源进行写操作后是否进行同步操作 short preserve case = yes|no # 指明是否区分文件名大小写 preserve case = yes|no # 指明是否保持大小写 case sensitive = yes|no # 指明是否对大小写敏感,一般选no,不然可能引起错误 mangle case = yes|no # 指明混合大小写 default case = upper|lower # 指明缺省的文件名是全部大写还是小写 force user = testuser # 强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= testuser强制建立文件的属主是testuser,同时限制create mask = 0755,这样guest就不能删除了 wide links = yes|no # 指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用 max connections = 100 # 设定最大同时连接数
修改系统时间(默认时间不对的情况下)
- sudo tzselect,依次选择Asia - China - BeijingTime - Yes
- sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改brshrc的命令提示符
默认的命令提示符比较粗糙,可以自定义提示符。编辑.bashrc文件,修改PS1字段。
PS1="\[\033[0;32m\]\A \[\033[0;32m\]\u\[\033[0;32;1m\]@\[\033[0;32m\]\h\[\033[0;34m\]:\[\033[00;36m\]\w\[\033[0;33m\]\n$\[\033[0m\] "
上述配置效果分行显示,如下:
可以根据自己喜好调整:
PS1:提示符的设置
PS1(是数字1而不是字母l),每个版本bash的PS1变量内的特殊符号可能有些小的差异,你可以先man bash 一下。
/d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
/H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
/h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
/t :显示时间为24小时格式,如:HH:MM:SS
/T :显示时间为12小时格式
/A :显示时间为24小时格式:HH:MM
/u :当前用户的账号名称
/v :BASH的版本信息
/w :完整的工作目录名称。家目录会以 ~代替
/W :利用basename取得工作目录名称,所以只会列出最后一个目录
/# :下达的第几个命令
/$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$