Linux下通过kvm创建虚拟机,通过vnc连接,做好配置后,通过ssh登录,并开启iptables

Kvm虚拟化搭建教程参考链接:https://jingyan.baidu.com/article/6fb756ec90451f241858fb9c.html

第一步:

安装之前物理机的基本要求:centos6.5 64位,不安装桌面环境,默认运行级别为3,要配置好dns,确定系统时间与北京时间同步,服务器要允许命令重启,bios开启vt功能。

1. 查看Linux查看系统运行级别:who –r 命令 run-level有网络的多用户模式,默认运行级别为3。

2. 采用最小化安装+以下软件包:BaseSystem – Base,Development-- Development tools

yum groups install Development tools -y
yum install basesystem –y

3.  查看DNS的配置cat /etc/resolv.conf 确认配置好DNS的nameserver为114.114.114.114

4.  系统时间同步

参考链接:https://www.linuxprobe.com/linux-internet.html

安装ntp:

yum install -y ntpdate

同步时间: ping pool.ntp.org 是ntp的官方网站

Ntpdate ping出的ip,使用ip连接会快点

系统时间写入到系统硬件当中,避免重启服务器时间覆盖

显示hardwareclock系统硬件时间:

hwclock

将系统时间写入到系统硬件当中:

hwclock –w

设置定时任务:

Crontab –e –u root
10 5 * * * root ntpdate ip; hwclock -w

5.  查看虚拟化有没有开启,没有的话需要在关闭虚拟机后在虚拟机管理页面开启。

[root@learn1 ~]# cat /proc/cpuinfo | grep vmx
[root@learn1 ~]# lsmod | grep lvm

第二步:

1.安装依赖包和一些基础软件:

yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools virt-install

2.启动libvirtd服务

systemctl start libvirtd  &&   systemctl enable libvirtd

3.命令全局生效

ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

第三步:

创建网桥:

cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=公网IP
NETMASK=公网IP掩码
GATEWAY=公网IP网关

第四步:

修改网卡信息,将网卡连接到网桥:

cat /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1
BRIDGE=br0
ONBOOT=yes
BOOTPROTO=none

重启网络:

systemctl restart network

第五步:

查看网桥:

[root@localhost data1]# brctl show 

至此,KVM环境安装完成,接下来新建windows与centos虚拟机安装操作系统:

第一步:

上传iso文件到/images目录下,Centos的可以直接通过rz上传,windows的因为超过4G,所以需要下载winscp工具上传。

创建centos虚拟机的步骤:

1.创建磁盘:

qemu-img create -f qcow2 /data/devops.qcow2 5G

2.创建虚拟机devops:

virt-install --virt-type kvm --name devops --ram 1024 --vcpus=1 --disk path=/data/devops.qcow2 --cdrom /images/CentOS-7.0-1406-x86_64-DVD.iso --network bridge=br0,model=virtio --graphics vnc,listen=0.0.0.0,port=5905 --noautoconsole --os-type=linux --os-variant=rhel7

可能会有的报错是qemu用户对/data目录没有权限,需要chown修改。

chown -R qemu:qemu /data/

创建完成,可以看到系统5905端口打开。

netstat –antlp

创建windows10虚拟机的步骤:

1.创建磁盘:

qemu-img create -f qcow2 /data/kvm/scpvp-pkg-qa/scpvp-pkg-qa.qcow2 20G 

2.创建虚拟机:

virt-install --virt-type kvm --name scpvp-pkg-qa --ram 1024 --vcpus=8 --disk path=/data/kvm/scpvp-pkg-qa/scpvp-pkg-qa.qcow2 --cdrom /images/Windows.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5905 --noautoconsole

第二步:

Kvm的日常管理命令:

查看KVM列表:virsh  list --all
启动KVM:virsh start devops
关闭KVM:virsh shutdown devops
强制关闭KVM:virsh destroy devops
暂停KVM:virsh suspend devops
恢复KVM:virsh resume devops
克隆KVM:virt-clone -o devops -n devops01 -f /data1/devops01.qcow2
编辑KVM配置:virsh edit devops01
删除VNC端口:
virsh edit centos01,打开xml后,删除下面的配置:
<graphics type='vnc' port='5910' autoport='no' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
设置KVM开机自动启动:
vrish autostart devops01 

创建完成,给虚拟机建立VNC连接:

参考连接:https://jingyan.baidu.com/article/b2c186c8dff167c46ef6ffa8.html

然后就可以连接虚拟机了。

Ssh/securecrt连接:

vnc连接虚拟机之后,做好基本的配置,如设置网络,dns等后,devops就可以通过secureCRT去连接新建的虚拟机了,也可以通过ssh连接。

Windows也相同:通过vnc连接时,密钥为:W269N-WFGWX-YVC9B-4J6C9-T83GX

参考链接:https://blog.51cto.com/10802692/2414758?source=dra

Kvm+iptables

Devops主机安装iptables与iptables-services,开启iptables,给主机安装apache并开启,默认情况下外部浏览器是访问不到devops的也免得,需要设置策略。

iptables -I INPUT 1 -s 192.168.172.101 -p tcp --dport 80 -j ACCEPT

保存:

service iptables save

保存到此文件中:

/etc/sysconfig/iptables

命令查看iptables的策略

iptables -nL

kvm环境部署及常用指令的更多相关文章

  1. ansible环境部署及常用模块总结 - 运维笔记

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

  2. 002.KVM环境部署

    一 环境准备 1.1 查看是否支持虚拟化 [root@kvm-host ~]# grep -E 'vmx|svm' /proc/cpuinfo 注意:intel为vmx,amd为svm. 1.2 确定 ...

  3. 【docker 一】入门实践、环境部署、基本操作指令、镜像库、数据卷

    简述 `docker是如火如荼的容器技术,今后会陆续上传关于微服务技术的学习笔记,希望能和大家一起学习一起分享!` docker环境搭建 1.获取最新版的Docker安装包 $ wget -qO- h ...

  4. Ananconda常用指令

    Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项,可用于解决开发过程中遇到python版本需要切换的问题. conda有一点好处是,如 ...

  5. 第一节. .Net Core环境的安装和常用指令

    一. 环境介绍和安装 1. 环境介绍 .Net FrameWork框架:BCL(基础类库 system.dll).CLR(运行时 仅支持:Windows).FCL(一些框架,比如:MVC.WPF) . ...

  6. kvm企业级虚拟化环境部署

    由于要做毕设了,不得不要搭建Linux环境,自己做的课题是ELK日志分析相关.因此要大干一场,一下子计划采用近10台机器来做试验,但由于我这里只有三台物理机,所以我就搞起了虚拟化kvm.在Linux里 ...

  7. 高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令

    1. error_log 含义:指定存储错误日志的文件 语法:error_log <file> [debug|info|notice|warn|error|crit] 缺省:${prefi ...

  8. 当前主要的常用的PHP环境部署套件比较

    当前主要的常用的PHP环境部署套件比较 作为新手,需要学习PHP,或者需要搭建PHP+MySQL运行环境时,就需要去找各种搭建方法,一步一步按照操作流程操作,不仅繁琐,而且容易出错,还会带来安全隐患. ...

  9. Saltstack自动化操作记录(1)-环境部署【转】

    早期运维工作中用过稍微复杂的Puppet,下面介绍下更为简单实用的Saltstack自动化运维的使用. Saltstack知多少Saltstack是一种全新的基础设施管理方式,是一个服务器基础架构集中 ...

随机推荐

  1. 蓝桥杯——分组比赛(2017JavaB组第3题)

    分组比赛(17JavaB3) 9名运动员参加比赛,需要分3组进行预赛. 有哪些分组的方案呢? 标记运动员为 A,B,C,... I 下面的程序列出了所有的分组方法: ABC DEF GHI ABC D ...

  2. Java基础教程——抽象类

    抽象类 抽象类是介于普通类(class)和接口(interface)之间的一种特殊类. 接口的方法都不实现,类的方法都必须实现,抽象类里的方法可以实现,可以不实现. Java 8之后接口中可以实现方法 ...

  3. .net core3.1开始页面实时编译

    安装NuGet包 Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation  startup.cs 中的ConfigureSe ...

  4. gradle插件版本号和Gradle版本号对应关系

    Plugin version Required Gradle version 1.0.0 - 1.1.3 2.2.1 - 2.3 1.2.0 - 1.3.1 2.2.1 - 2.9 1.5.0 2.2 ...

  5. ④SpringCloud 实战:引入Hystrix组件,分布式系统容错

    这是SpringCloud实战系列中第4篇文章,了解前面第两篇文章更有助于更好理解本文内容: ①SpringCloud 实战:引入Eureka组件,完善服务治理 ②SpringCloud 实战:引入F ...

  6. 记一次容器CPU高占用问题排查

    起因:发现docker中有两个容器的CPU持续在百分之95以上运行了一晚上 执行命令:docker stats 发现这个两个大兄弟一点没歇满负荷跑了一晚上,再这么下去怕不是要GG 容器里跑的是JAVA ...

  7. 20200203_windows2012下安装mysql 5.7.29

    一.   检查系统版本: 二. 下载mysql, 下载地址: https://dev.mysql.com/downloads/mysql/5.7.html#downloads 三.   解压下载后的压 ...

  8. centos7中安装redis出现的问题

    重现步骤: 1.解压redis包后 执行make命令.出现一堆东西,其中有gcc:命令未找到. 解决:安装 yum install gcc-c++(需要有网) 2.安装完gcc命令后,再make.出现 ...

  9. 老猿学5G扫盲贴:推荐三篇介绍HTTP2协议相关的文章

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 5G中的服务化接口调用都是基于HTTP2协议的,老 ...

  10. Object.prototype.toString.call()为什么可以用来检测数据类型?

    obj.toString()方法是用来干什么的 每一个对象都有一个toString()方法,默认情况下toString()被每一个Object对象继承,如果此方法未被重写,toString()返回&q ...