首页
归档
时光轴
推荐
Cloud
图床
导航
Search
1
Deploy OpenStack offline based on Kolla
737 阅读
2
openstact 基础环境安装 (手动版)
687 阅读
3
Mariadb 主从复制&读写分离
642 阅读
4
Typecho 1.2.0 部署
640 阅读
5
FusionCompute8.0 体验
573 阅读
Python
Linux
随笔
mysql
openstack
Search
标签搜索
linux
Pike
python
爬虫
openstack
mysql
Essay
Ansible
docker
Zabbix
kolla
Internet
Redis
1+X
Hyper-V
jenkins
Kickstart
自动化
sh
pxe
Acha
累计撰写
77
篇文章
累计收到
1
条评论
首页
栏目
Python
Linux
随笔
mysql
openstack
页面
归档
时光轴
推荐
Cloud
图床
导航
搜索到
18
篇与
的结果
2022-03-28
docker for windows
docker for windows Dokcer 在 Windows 上使用之前版本使用的是 Hyper-V,现在使用的 WSL2 。对于 Hyper-V 在了解虚拟化的时候知道是Microsoft 的 虚拟化技术。VMware Workstation 用惯了,也没去了解 Hyper-V 在 windows上的使用。现在,在Windows 使用 Docker 的时候遇到,顺便写写。 WSL2 不知道是啥,但是 "linux for windows" 是听过的。Windows11 在发布的时候出现了 "android for windows" 。了解完,也只知道是WSL基于Hyper-V。也用管它是啥,好用就行了。还想找找它的管理界面,结果没找到。只找到,子系统在应用商店安装使用,没做了解,只是Docker安装好了提示你安装WSL。 安装 docker 文档地址: https://docs.docker.com/desktop/windows/install/ 安装包地址:https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe 硬件先决条件: 1、必须在 BIOS 设置中启用 BIOS 级硬件虚拟化支持 2、系统必须支持WSL2 或 Hyper-V 3、4GB 系统内存 安装过程默认下一步,安装完成,重启就可以正常使用。 Windows 上启用 WSL 2 功能 1、启动 WSL dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 2、启用 虚拟机功能 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 3、下载 Linux 内核更新包并运行 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 4、将 WSL 2 设置为默认版本 wsl --set-default-version 2 参考地址:https://docs.microsoft.com/en-us/windows/wsl/install-manual 使用 docker 在 Windws 的 CMD 就可以调用 Dokcer CLI,也可以在 Docker 应用中操作 Windows Terminal Windows11 上默认 安装了 Windows Terminal ,个人感觉非常好用,字体配色比较好看,还安装了Vim。在 Windows 的命令行中也可以自由编辑,可以提高效率,适应在Shell中配置的感觉。windows10 用户可以自行下载。 项目地址:https://github.com/microsoft/terminal/ 应用界面 菜单:Container、imager、Volume 熟悉 CLI ,大多还会使用命令行,用着比较高效。 应用界面观看运行状态及存储空间也是不错的选择。
2022年03月28日
194 阅读
0 评论
0 点赞
2021-12-04
1+X 云计算初级( 操作题 )
1+X 初级 by 王政(blog http://blog.youto.club) # 说明: 本次视频,只做文档演示,没有详细讲解 # 视频地址:https://www.bilibili.com/video/BV1hL411M72w 1+X 初级 环境准备 网络服务 本地YUM源管理 FTP安装使用 Samba管理 NFS 服务管理 主从数据库管理 部署WordPress应用 拓展 LVM 数据库管理 MariaDB管理 Openstack运维 OpenStack Keystone管理 OpenStack Glance管理 OpenStack Cinder管理 OpenStack Nova管理 OpenStack Swift管理 Docker Docker安装 Docker运维 Docker管理 Dockerfile编写 Dockerfile 编写 部署Swarm集群 环境准备 yum源 selinux & firewalld hostname hosts 网络服务 本地YUM源管理 使用VMWare软件启动提供的xserver1虚拟机(配置虚拟机xserver1的IP为192.168.100.11,主机名为xserver1),在虚拟机的/root目录下,存在一个CentOS-7-x86_64-DVD-1511.iso的镜像文件,使用这个镜像文件配置本地yum源,要求将这个镜像文件挂在/opt/centos目录,请问如何配置自己的local.repo文件,使得可以使用该镜像中的软件包,安装软件。请将local.repo文件的内容以文本形式提交到答题框。 [root@xserver1 ~]# mkdir /opt/centos [root@xserver1 ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso /opt/centos/ mount: /dev/loop0 is write-protected, mounting read-only [root@xserver1 ~]# rm -f /etc/yum.repos.d/* [root@xserver1 ~]# cat /etc/yum.repos.d/local.repo [centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 # 答题框 [root@xserver1 ~]# cat /etc/yum.repos.d/local.repo [centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 FTP安装使用 使用xserver1虚拟机,安装ftp服务,并配置ftp的共享目录为/opt。使用VMWare软件继续启动提供的xserver2虚拟机(配置虚拟机xserver2的IP为192.168.100.12,主机名为xserver2),并创建该虚拟机的yum源文件ftp.repo使用xserver1的ftp源(配置文件中的FTP地址使用主机名)。配置完成后,将xserver2节点的ftp.repo文件以文本形式提交到答题框。 yum install -y vsftpd echo "anon_root=/opt/" >> /etc/vsftpd/vsftpd.conf systemctl start vsftpd && systemctl enable vsftpd [root@xserver2 ~]# cat /etc/yum.repos.d/ftp.repo [centos] name=centos baseurl=ftp://xserver1/centos gpgcheck=0 enabled=1 # 答题框 [root@xserver2 ~]# cat /etc/yum.repos.d/ftp.repo [centos] name=centos baseurl=ftp://xserver1/centos gpgcheck=0 enabled=1 Samba管理 使用xserver1虚拟机,安装Samba服务所需要的软件包,将xserver1节点中的/opt/share目录使用Samba服务共享出来(目录不存在请自行创建)。操作完毕后,将xserver1节点Samba配置文件中的[share]段落和执行netstat -ntpl命令的返回结果以文本形式提交到答题框。 yum install -y samba vi /etc/samba/smb.conf # 添加 [share] comment = Share Directories path=/opt/share writable = yes systemctl restart smb # 答题框 [share] comment = Share Directories path=/opt/share writable = yes [root@xserver1 ~]# netstat -nltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 3527/smbd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1429/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1944/master tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 3527/smbd tcp6 0 0 :::139 :::* LISTEN 3527/smbd tcp6 0 0 :::21 :::* LISTEN 3280/vsftpd tcp6 0 0 :::22 :::* LISTEN 1429/sshd tcp6 0 0 ::1:25 :::* LISTEN 1944/master tcp6 0 0 :::445 :::* LISTEN 3527/smbd NFS 服务管理 使用 xserver1、xserver2 虚拟机,安装 NFS 服务所需要的软件包,将 xserver1 节点中的/mnt/share 目录使用 NFS 服务共享出来(目录不存在请自行创建,要求可访问共享目录的网段为 192.168.100.0/24),接着在 xserver2 节点上,将 xserver1中共享的文件挂载到/mnt 目录下。操作完毕后,依次将 xserver1 节点上执行showmount -e ip 命令和 xserver2 节点上执行 df -h 命令的返回结果(简要)写到下方 # xserver1 yum search nfs yum install -y nfs-utils mkdir /mnt/share man exports vi /etc/exports # 添加 /mnt/share 192.168.100.0/24(rw,sync) systemctl start nfs-server rpcbind exportfs -r showmount -e 192.168.100.11 # xserver2 yum install -y nfs-utils mount 192.168.100.11:/mnt/share /mnt/ df -h # 答题框 [root@xserver1 ~]# showmount -e 192.168.100.11 Export list for 192.168.100.11: /mnt/share 192.168.100.0/24 [root@xserver2 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 36G 951M 35G 3% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.7M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 497M 114M 384M 23% /boot tmpfs 378M 0 378M 0% /run/user/0 192.168.100.11:/mnt/share 36G 7.7G 28G 22% /mnt 主从数据库管理 在xserver1、xserver2上安装mariadb数据库,并配置为主从数据库(xserver1为主节点、xserver2为从节点),实现两个数据库的主从同步。配置完毕后,请在xserver2上的数据库中执行“show slave status \G”命令查询从节点复制状态,将查询到的结果以文本形式提交到答题框。 ## xserver1 yum install -y mariadb-server systemctl start mariadb mysql_secure_installation mysql -uroot -p000000 MariaDB [(none)]> GRANT ALL privileges ON *.* TO 'root'@'%' IDENTIFIED BY '000000'; MariaDB [(none)]> GRANT replication slave ON *.* TO 'user'@'xserver2' IDENTIFIED BY '000000'; vi /etc/my.cnf # 在第二行添加 log_bin=mysql-bin server_id=11 systemctl restart mariadb ## xserver2 yum install -y mariadb-server systemctl start mariadb mysql_secure_installation vi /etc/my.cnf # 在第二行添加 log_bin=mysql-bin server_id=12 systemctl restart mariadb mysql -uroot -p000000 MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='xserver1',MASTER_USER='user',MASTER_PASSWORD='000000'; MariaDB [(none)]> start slave; MariaDB [(none)]> show slave status \G # 答题框 MariaDB [(none)]> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: xserver1 Master_User: user Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 245 Relay_Log_File: mariadb-relay-bin.000003 Relay_Log_Pos: 529 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 245 Relay_Log_Space: 825 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 11 1 row in set (0.00 sec) 部署WordPress应用 使用xserver1节点,基于lnmp环境,部署WordPress应用(WordPress源码包在/root目录下)。应用部署完毕后,设置WordPress的站点标题为自己的姓名(例:名字叫张三,则设置站点标题为张三的BLOG),设置完毕后登录WordPresss首页。最后将命令curl ip(ip为wordpress的首页ip)的返回结果以文本形式提交到答题框。 # xserver1 vi /etc/yum.repos.d/local.repo i # 添加 [lnmp] name=lnmp baseurl=file:///root/lnmp gpgcheck=0 enabled=1 yum repolist yum install -y nginx php php-fpm php-mysql vi /etc/php-fpm.d/www.conf # 修改 39 user = nginx 41 group = nginx vi /etc/nginx/conf.d/default.conf # 修改 10 index index.php index.html index.htm; 30 location ~ \.php$ { 31 root /usr/share/nginx/html; 32 fastcgi_pass 127.0.0.1:9000; 33 fastcgi_index index.php; 34 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 35 include fastcgi_params; 36 } systemctl start nginx php-fpm [root@xserver1 ~]# mysql -uroot -p000000 MariaDB [(none)]> create database wordpress; rm -f /usr/share/nginx/html/* yum install -y unzip unzip wordpress-4.7.3-zh_CN.zip cp -r wordpress/* /usr/share/nginx/html/ ls /usr/share/nginx/html/ chown -R nginx.nginx /usr/share/nginx/html/ cp /usr/share/nginx/html/wp-config-sample.php /usr/share/nginx/html/wp-config.php vi /usr/share/nginx/html/wp-config.php # 修改 23 define('DB_NAME', 'wordpress'); 26 define('DB_USER', 'root'); 29 define('DB_PASSWORD', '000000'); # 使用浏览访问 IP,设置标题 数字表示行号 tip: 在 vi中 :set nu 显示行号 拓展 LVM # 解题步骤: 1. 添加硬盘,并分区 2. 创建 PV 3. 创建 VG 4. 创建 LV 5. 格式化,挂载 使用xserver1虚拟机,使用VMWare软件自行添加一块大小为20G的硬盘,使用fdisk命令对该硬盘进形分区,要求分出三个大小为5G的分区。使用这三个分区,创建名xcloudvg的卷组。然后创建名xcloudlv的逻辑卷,大小为12G,再创建完之后,使用命令将逻辑卷大小缩小2G,然后查看逻辑卷信息。将上述所有操作命令和返回结果以文本形式提交到答题框。 [root@xserver2 ~]# lsblk [root@xserver2 ~]# fdisk /dev/sdb # n 默认回车 大小设置:+5G 重复三次 [root@xserver2 ~]# pvcreate /dev/sdb[1-3] [root@xserver2 ~]# vgcreate xcloudvg /dev/sdb[1-3] [root@xserver2 ~]# lvcreate -L 12G -n xcloudlv xcloudvg [root@xserver2 ~]# lvreduce -L -2G /dev/mapper/xcloudvg-xcloudlv [root@xserver2 ~]# lvdisplay 使用VMware软件和提供的CentOS-7-x86_64-DVD-1511.iso创建虚拟机,自行配置好网络并多添加一块大小为20G的硬盘,使用fdisk命令对该硬盘进形分区,要求分出三个大小为5G的分区。使用这三个分区,创建名xcloudvg的卷组。然后创建名xcloudlv的逻辑卷,大小为12G,最后用xfs文件系统对逻辑卷进行格式化并挂载到/mnt目录下。将上述所有操作命令和返回结果以文本形式提交到答题框。 [root@xserver2 ~]# lsblk [root@xserver2 ~]# fdisk /dev/sdb # n 默认回车 大小设置:+5G 重复三次 [root@xserver2 ~]# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3 [root@xserver2 ~]# vgcreate xcloudvg /dev/sdb[1-3] [root@xserver2 ~]# lvcreate -L 12G -n xcloudlv xcloudvg [root@xserver2 ~]# mkfs.xfs /dev/xcloudvg/xcloudlv [root@xserver2 ~]# mkdir /data [root@xserver2 ~]# mount -o loop /dev/xcloudvg/xcloudlv /mnt [root@xserver2 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 36G 872M 35G 3% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.6M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 497M 114M 384M 23% /boot tmpfs 378M 0 378M 0% /run/user/0 /dev/loop0 12G 33M 12G 1% /mnt 使用xserver1虚拟机,使用VMWare软件自行添加一块大小为20G的硬盘,使用fdisk命令对该硬盘进形分区,要求分出两个大小为5G的分区。使用两个分区,创建名xcloudvg的卷组并指定PE大小为16 MB。将执行vgdisplay命令的返回结果以文本形式提交到答题框。 [root@xserver1 ~]# fdisk /dev/sdb # n 默认回车 大小设置:+5G 重复三次 [root@xserver1 ~]# pvcreate /dev/sdb1 /dev/sdb2 [root@xserver1 ~]# vgcreate xcloudvg -s 16 /dev/sdb1 /dev/sdb2 [root@xserver1 ~]# vgdisplay 数据库管理 使用提供的“all-in-one”虚拟机,进入数据库。 (1)创建本地用户examuser,密码为000000; (2)查询mysql数据库中的user表的host,user,password字段;(3)赋予这个用户对所有数据库拥有“查询”“删除”“更新”“创建”的本地权限。依次将操作命令和返回结果以文本形式提交到答题框。 [root@xserver1 ~]# mysql -uroot -p000000 MariaDB [mysql]> create user examuser@localhost identified by '000000'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> use mysql MariaDB [mysql]> select host,user,password from user; +-----------+----------+-------------------------------------------+ | host | user | password | +-----------+----------+-------------------------------------------+ | localhost | root | *032197AE5731D4664921A6CCAC7CFCE6A0698693 | | xserver1 | root | *032197AE5731D4664921A6CCAC7CFCE6A0698693 | | 127.0.0.1 | root | *032197AE5731D4664921A6CCAC7CFCE6A0698693 | | ::1 | root | *032197AE5731D4664921A6CCAC7CFCE6A0698693 | | % | root | *032197AE5731D4664921A6CCAC7CFCE6A0698693 | | xserver2 | user | *032197AE5731D4664921A6CCAC7CFCE6A0698693 | | localhost | examuser | *032197AE5731D4664921A6CCAC7CFCE6A0698693 | +-----------+----------+-------------------------------------------+ 7 rows in set (0.00 sec) MariaDB [mysql]> grant SELECT,DELETE,UPDATE,CREATE on *.* to examuser@localhost; Query OK, 0 rows affected (0.00 sec) MariaDB管理 使用VMware软件和提供的CentOS-7-x86_64-DVD-1511.iso创建虚拟机,自行配置好网络和YUM源,安装mariadb数据库,安装完毕后登数据库,查询当前系统的时间和用户。依次将操作命令和返回结果以文本形式提交到答题框。(数据库用户名root,密码000000;关于数据库的命令均使用小写) [root@xserver1 ~]# mysql -uroot -p000000 MariaDB [(none)]> select user() ,now(); +----------------+---------------------+ | user() | now() | +----------------+---------------------+ | root@localhost | 2021-11-17 15:05:08 | +----------------+---------------------+ 1 row in set (0.00 sec) Openstack运维 OpenStack Keystone管理 使用提供的“all-in-one”虚拟机,创建用户testuser,密码为xiandian,将testuser用户分配给admin项目,赋予用户admin的权限。依次将操作命令和查询结果以文本形式提交到答题框。 [root@controller ~]# openstack user create --password xiandian --project admin --domain xiandian testuser +--------------------+----------------------------------+ | Field | Value | +--------------------+----------------------------------+ | default_project_id | f9ff39ba9daa4e5a8fee1fc50e2d2b34 | | domain_id | 9321f21a94ef4f85993e92a228892418 | | enabled | True | | id | 806b2c56147e41699ddd89af955a6f20 | | name | testuser | +--------------------+----------------------------------+ OpenStack Glance管理 使用VMWare软件启动提供的opensatckallinone镜像,自行检查openstack中各服务的状态,若有问题自行排查。在xserver1节点的/root目录下存在一个cirros-0.3.4-x86_64-disk.img镜像;使用glance命令将镜像上传,并命名为mycirros,最后将glance image-show id命令的返回结果以文本形式提交到答题框。 [root@controller ~]# scp 192.168.100.11:/root/cirros-0.3.4-x86_64-disk.img . [root@controller ~]# glance image-create --name mycirros --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img [=============================>] 100% +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | ee1eca47dc88f4879d8a229cc70a07c6 | | container_format | bare | | created_at | 2021-11-24T15:54:45Z | | disk_format | qcow2 | | id | 45d98d72-b23f-464d-b66e-13f154eed216 | | min_disk | 0 | | min_ram | 0 | | name | mycirros | | owner | f9ff39ba9daa4e5a8fee1fc50e2d2b34 | | protected | False | | size | 13287936 | | status | active | | tags | [] | | updated_at | 2021-11-24T15:54:45Z | | virtual_size | None | | visibility | private | +------------------+--------------------------------------+ [root@controller ~]# glance image-show 45d98d72-b23f-464d-b66e-13f154eed216 +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | ee1eca47dc88f4879d8a229cc70a07c6 | | container_format | bare | | created_at | 2021-11-24T15:54:45Z | | disk_format | qcow2 | | id | 45d98d72-b23f-464d-b66e-13f154eed216 | | min_disk | 0 | | min_ram | 0 | | name | mycirros | | owner | f9ff39ba9daa4e5a8fee1fc50e2d2b34 | | protected | False | | size | 13287936 | | status | active | | tags | [] | | updated_at | 2021-11-24T15:54:45Z | | virtual_size | None | | visibility | private | +------------------+--------------------------------------+ OpenStack Cinder管理 使用VMWare软件启动提供的opensatckallinone镜像,自行检查openstack中各服务的状态,若有问题自行排查。使用Cinder服务,创建名为“ lvm”的卷类型,然后创建一块带“lvm” 标识的云硬盘,名称为 BlockVloume,大小为 2G,查询该云硬盘详细信息。完成后,将cinder show BlockVloume命令的返回结果以文本形式提交到答题框。 [root@controller ~]# cinder type-create lvm +--------------------------------------+------+-------------+-----------+ | ID | Name | Description | Is_Public | +--------------------------------------+------+-------------+-----------+ | caad5c75-59e3-4167-ad15-19e9f27cee6f | lvm | - | True | +--------------------------------------+------+-------------+-----------+ [root@controller ~]# cinder create --name BlockVloume --volume-type lvm 2 +--------------------------------+--------------------------------------+ | Property | Value | +--------------------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2021-11-24T15:57:22.000000 | | description | None | | encrypted | False | | id | d013e4b2-b0b8-41b4-95e3-2bd47f3431fa | | metadata | {} | | migration_status | None | | multiattach | False | | name | BlockVloume | | os-vol-host-attr:host | None | | os-vol-mig-status-attr:migstat | None | | os-vol-mig-status-attr:name_id | None | | os-vol-tenant-attr:tenant_id | f9ff39ba9daa4e5a8fee1fc50e2d2b34 | | replication_status | disabled | | size | 2 | | snapshot_id | None | | source_volid | None | | status | creating | | updated_at | None | | user_id | 0befa70f767848e39df8224107b71858 | | volume_type | lvm | +--------------------------------+--------------------------------------+ [root@controller ~]# cinder show d013e4b2-b0b8-41b4-95e3-2bd47f3431fa +--------------------------------+--------------------------------------+ | Property | Value | +--------------------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2021-11-24T15:57:22.000000 | | description | None | | encrypted | False | | id | d013e4b2-b0b8-41b4-95e3-2bd47f3431fa | | metadata | {} | | migration_status | None | | multiattach | False | | name | BlockVloume | | os-vol-host-attr:host | controller@lvm#LVM | | os-vol-mig-status-attr:migstat | None | | os-vol-mig-status-attr:name_id | None | | os-vol-tenant-attr:tenant_id | f9ff39ba9daa4e5a8fee1fc50e2d2b34 | | replication_status | disabled | | size | 2 | | snapshot_id | None | | source_volid | None | | status | available | | updated_at | 2021-11-24T15:57:23.000000 | | user_id | 0befa70f767848e39df8224107b71858 | | volume_type | lvm | +--------------------------------+--------------------------------------+ OpenStack Nova管理 使用提供的“all-in-one”虚拟机,通过nova的相关命令创建名为exam,ID为1234,内存为1024M,硬盘为20G,虚拟内核数量为2的云主机类型,查看exam的详细信息。依次将操作命令及返回结果以文本形式提交到答题框。 [root@controller ~]# nova flavor-create exam 1234 1024 20 2 +------+------+-----------+------+-----------+------+-------+-------------+-----------+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | +------+------+-----------+------+-----------+------+-------+-------------+-----------+ | 1234 | exam | 1024 | 20 | 0 | | 2 | 1.0 | True | +------+------+-----------+------+-----------+------+-------+-------------+-----------+ [root@controller ~]# nova flavor-show exam +----------------------------+-------+ | Property | Value | +----------------------------+-------+ | OS-FLV-DISABLED:disabled | False | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 20 | | extra_specs | {} | | id | 1234 | | name | exam | | os-flavor-access:is_public | True | | ram | 1024 | | rxtx_factor | 1.0 | | swap | | | vcpus | 2 | +----------------------------+-------+ OpenStack Nova管理 使用VMWare软件启动提供的opensatckallinone镜像,自行检查openstack中各服务的状态,若有问题自行排查。使用nova相关命令,查询nova所有的监控列表,并查看ID为1的监控主机的详细信息,将操作命令和返回结果以文本形式提交到答题框。 [root@controller ~]# nova hypervisor-list +----+---------------------+-------+---------+ | ID | Hypervisor hostname | State | Status | +----+---------------------+-------+---------+ | 1 | controller | up | enabled | +----+---------------------+-------+---------+ [root@controller ~]# nova hypervisor-show 1 +---------------------------+------------------------------------------+ | Property | Value | +---------------------------+------------------------------------------+ | cpu_info_arch | x86_64 | | cpu_info_features | ["smap", "avx", "clflush", "sep", | | | "syscall", "vme", "invpcid", "tsc", | | | "fsgsbase", "xsave", "pge", "vmx", | | | "erms", "cmov", "smep", "pcid", "pat", | | | "lm", "msr", "adx", "3dnowprefetch", | | | "nx", "fxsr", "sse4.1", "pae", "sse4.2", | | | "pclmuldq", "fma", "tsc-deadline", | | | "mmx", "osxsave", "cx8", "mce", "de", | | | "rdtscp", "ht", "pse", "lahf_lm", "abm", | | | "rdseed", "popcnt", "mca", "pdpe1gb", | | | "apic", "sse", "f16c", "mpx", "invtsc", | | | "pni", "aes", "avx2", "sse2", "ss", | | | "hypervisor", "bmi1", "bmi2", "ssse3", | | | "fpu", "cx16", "pse36", "mtrr", "movbe", | | | "rdrand", "x2apic"] | | cpu_info_model | Broadwell-noTSX | | cpu_info_topology_cells | 1 | | cpu_info_topology_cores | 2 | | cpu_info_topology_sockets | 1 | | cpu_info_topology_threads | 1 | | cpu_info_vendor | Intel | | current_workload | 0 | | disk_available_least | 31 | | free_disk_gb | 34 | | free_ram_mb | 7296 | | host_ip | 192.168.100.10 | | hypervisor_hostname | controller | | hypervisor_type | QEMU | | hypervisor_version | 2003000 | | id | 1 | | local_gb | 34 | | local_gb_used | 0 | | memory_mb | 7808 | | memory_mb_used | 512 | | running_vms | 0 | | service_disabled_reason | None | | service_host | controller | | service_id | 6 | | state | up | | status | enabled | | vcpus | 2 | | vcpus_used | 0 | +---------------------------+------------------------------------------+ OpenStack Swift管理 使用VMWare软件启动提供的opensatckallinone镜像,自行检查openstack中各服务的状态,若有问题自行排查。使用swift相关命令,创建一个名叫examcontainer的容器,然后往这个容器中上传一个test.txt的文件(文件可以自行创建),上传完毕后,使用命令查看容器,将操作命令和返回结果以文本形式提交到答题框。(40)分 [root@controller ~]# swift post examcontainer [root@controller ~]# touch test.txt [root@controller ~]# swift upload examcontainer test.txt test.txt [root@controller ~]# swift list examcontainer [root@controller ~]# swift stat examcontainer Docker Docker安装 使用xserver1节点,自行配置YUM源,安装docker服务(需要用到的包为xserver1节点/root目录下的Docker.tar.gz)。安装完服务后,将registry_latest.tar上传到xserver1节点中并配置为私有仓库。要求启动registry容器时,将内部保存文件的目录映射到外部的/opt/registry目录,将内部的5000端口映射到外部5000端口。依次将启动registry容器的命令及返回结果、执行docker info命令的返回结果以文本形式提交到答题框。 [root@xserver1 ~]# tar xfv Docker.tar.gz [root@xserver1 ~]# vi /etc/yum.repos.d/local.repo # 添加 [docker] name=docker baseurl=file:///root/Docker gpgcheck=0 enabled=1 [root@xserver1 ~]# yum repolist [root@xserver1 ~]# yum install -y docker-ce [root@xserver1 ~]# systemctl daemon-reload [root@xserver1 ~]# systemctl start docker [root@xserver1 ~]# ./image.sh [root@xserver1 ~]# vi /etc/docker/daemon.json # 添加 { "insecure-registries": ["192.168.100.11:5000"] } [root@xserver1 ~]# systemctl restart docker [root@xserver1 ~]# docker run -d --restart=always -v /opt/registry/:/var/lib/registry -p 5000:5000 registry:latest 950319053db0f90eef33b33ce3bc76a93d3b6cf4b17c27b532d23e8aa9ef7bb9 [root@xserver1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 950319053db0 registry:latest "/entrypoint.sh /etc…" 19 seconds ago Up 18 seconds 0.0.0.0:5000->5000/tcp xenodochial_johnson [root@xserver1 ~]# docker info # 答题框 [root@xserver1 ~]# docker info Containers: 1 Running: 0 Paused: 0 Stopped: 1 Images: 11 Server Version: 18.09.6 Storage Driver: devicemapper Pool Name: docker-253:0-67486317-pool Pool Blocksize: 65.54kB Base Device Size: 10.74GB Backing Filesystem: xfs Udev Sync Supported: true Data file: /dev/loop1 Metadata file: /dev/loop2 Data loop file: /var/lib/docker/devicemapper/devicemapper/data Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 1.339GB Data Space Total: 107.4GB Data Space Available: 26.1GB Metadata Space Used: 2.077MB Metadata Space Total: 2.147GB Metadata Space Available: 2.145GB Thin Pool Minimum Free Space: 10.74GB Deferred Removal Enabled: true Deferred Deletion Enabled: true Deferred Deleted Device Count: 0 Library Version: 1.02.107-RHEL7 (2015-10-14) Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339 runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 3.10.0-327.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 3.688GiB Name: xserver1 ID: VXSJ:7YFV:GWBV:2E3E:LAIM:EQ36:MRCD:Q6BG:IRBS:HJXU:K4ZD:E377 Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false Product License: Community Engine WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release. WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device. [root@xserver1 ~]# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 registry:latest b45c91876af54542dbc15706b7cb037e5b716068f7d33bba42df1f874d3d6bbf Docker运维 使用xserver1节点,上传nginx_latest.tar到xserver1节点中,然后将该镜像打标签,上传至私有仓库。使用xserver2节点,自行安装docker服务,配置xserver2节点使用xserver1的私有仓库,配置完毕后,在xserver2节点拉取nginx_latest.tar镜像。最后将在xserver2上执行docker images命令返回的结果以文本形式提交到答题框。 [root@xserver1 ~]# cd images [root@xserver1 images]# docker load -i nginx_latest.tar Loaded image: nginx:latest [root@xserver1 images]# docker tag nginx:latest 192.168.100.11:5000/nginx:latest [root@xserver1 images]# docker push 192.168.100.11:5000/nginx:latest The push refers to repository [192.168.100.11:5000/nginx] a89b8f05da3a: Pushed 6eaad811af02: Pushed b67d19e65ef6: Pushed latest: digest: sha256:f56b43e9913cef097f246d65119df4eda1d61670f7f2ab720831a01f66f6ff9c size: 948 [root@xserver1 ~]# cp -r Docker /opt/ [root@xserver2 ~]# vi /etc/yum.repos.d/ftp.repo # 添加 [docker] name=docker baseurl=ftp://xserver1/Docker gpgcheck=0 enabled=1 [root@xserver2 ~]# yum repolist [root@xserver2 ~]# yum install -y docker-ce [root@xserver2 ~]#systemctl daemon-reload [root@xserver2 ~]# systemctl start docker [root@xserver2 ~]# vi /etc/docker/daemon.json # 添加 { "insecure-registries": ["192.168.100.11:5000"] } [root@xserver2 ~]# systemctl restart docker [root@xserver2 ~]# docker pull 192.168.100.11:5000/nginx:latest [root@xserver2 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.100.11:5000/nginx latest 540a289bab6c 2 years ago 126MB Docker管理 假设当前存在docker镜像tomcat:latest,现在将tomcat镜像导出,导出名称为tomcat_images.tar,放在/media目录下,将以上操作命令填入答题框。 [root@xserver2 ~]# docker tag 192.168.100.11:5000/nginx:latest tomcat:latest [root@xserver2 ~]# docker save tomcat:latest > /media/tomcat_images.tar Dockerfile编写 使用xserver1节点,新建httpd目录,然后编写Dockerfile文件,要求如下:1)使用centos:latest镜像作为基础镜像;2)作者为xiandian;3)Dockerfile要求删除镜像的yum源,使用当前系统的local.repo源文件;4)安装http服务;5)暴露80端口。编写完毕后,构建的镜像名字叫httpd:v1.0的镜像。完成后将Dockerfile文件和镜像列表信息以文本形式提交到答题框。 [root@xserver1 ~]# mkdir httpd [root@xserver1 ~]# cd httpd/ [root@xserver1 httpd]# vi Dockerfile FROM centos:latest MAINTAINER xiandian RUN rm -f /etc/yum.repos.d/* COPY local.repo /etc/yum.repos.d/ RUN yum install -y httpd EXPOSE 80 [root@xserver1 httpd]# cat local.repo [centos] name=centos baseurl=ftp://192.168.100.11/centos gpgcheck=0 enabled=1 [root@xserver1 httpd]# docker build -t httpd:v1.0 . [root@xserver1 httpd]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd v1 4ff5ef091914 19 seconds ago 220MB Dockerfile 编写 使用 xserver1 节点,新建目录 centos-jdk,将提供的 jdk-8u141-linux-x64.tar.gz 复制新建的目录,然后编辑 Dockerfile 文件,文件要求如下: 1.使用 centos:latest 基础镜像; 2.指定作者为 xiandian; 3.新建文件夹/usr/local/java 用于存放 jdk 文件; 4.将 JDK 文件复制到镜像内创建的目录并自动解压; 5.创建软连接:ln -s /usr/local/java/jdk1.8.0_141 /usr/local/java/jdk; 6.设置环境变量如下 ENV JAVA_HOME /usr/local/java/jdk ENV JRE_HOME ${JAVA_HOME}/jre ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib ENV PATH ${JAVA_HOME}/bin:$PATH 编写完毕后,构建名为 centos-jdk 的镜像,构建成功后,查看镜像列表。 最后将 Dockerfile 的内容、构建镜像的操作命令、查看镜像列表的命令和返回的(简要)写到下方。 [root@xserver1 ~]# mkdir centos-jdk [root@xserver1 ~]# cd centos-jdk/ [root@xserver1 centos-jdk]# cat Dockerfile FROM centos:latest MAINTAINER xiandian WORKDIR /usr/local/java ADD jdk-8u141-linux-x64.tar.gz /usr/local/java RUN ln -s /usr/local/java/jdk1.8.0_141 /usr/local/java/jdk ENV JAVA_HOME /usr/local/java/jdk ENV JRE_HOME ${JAVA_HOME}/jre ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib ENV PATH ${JAVA_HOME}/bin:$PATH [root@xserver1 centos-jdk]# cp /root/jdk/jdk-8u141-linux-x64.tar.gz . [root@xserver1 centos-jdk]# docker build -t centos-jdk:v1 . Sending build context to Docker daemon 185.5MB Step 1/9 : FROM centos:latest ---> 0f3e07c0138f Step 2/9 : MAINTAINER xiandian ---> Using cache ---> 380ab4775829 Step 3/9 : WORKDIR /usr/local/java ---> Running in 3d042489bc79 Removing intermediate container 3d042489bc79 ---> 0ca117e514c2 Step 4/9 : ADD jdk-8u141-linux-x64.tar.gz /usr/local/java ---> a46b588b978d Step 5/9 : RUN ln -s /usr/local/java/jdk1.8.0_141 /usr/local/java/jdk ---> Running in 5a6643a9a5cb Removing intermediate container 5a6643a9a5cb ---> 0bcbb2fbe73f Step 6/9 : ENV JAVA_HOME /usr/local/java/jdk ---> Running in 7522f805f7d4 Removing intermediate container 7522f805f7d4 ---> 3d366a42f998 Step 7/9 : ENV JRE_HOME ${JAVA_HOME}/jre ---> Running in b550575dc17e Removing intermediate container b550575dc17e ---> e0df108c1aed Step 8/9 : ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib ---> Running in 1b439c9f4e25 Removing intermediate container 1b439c9f4e25 ---> bb89ab740e4e Step 9/9 : ENV PATH ${JAVA_HOME}/bin:$PATH ---> Running in d18c59ac844d Removing intermediate container d18c59ac844d ---> 59d4683996a7 Successfully built 59d4683996a7 Successfully tagged centos-jdk:v1 [root@xserver1 centos-jdk]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos-jdk v1 3ca44b341427 7 seconds ago 596MB 部署Swarm集群 使用xserver1、xserver2节点,自行配置好网络,安装好docker-ce。部署Swarm集群,并安装Portainer图形化管理工具,部署完成后,使用浏览器登录ip:9000界面,进入Swarm控制台。将curl swarm ip:9000返回的结果以文本形式提交到答题框。 [root@xserver1 ~]# docker swarm init --advertise-addr 192.168.100.11 Swarm initialized: current node (z9kmpvwdd1mcytddlr7qxfqz3) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-31hn156p86fr6eo720rq9mqafckpw1who0i39dxv9m3tbpjd0l-86zun6fgtb3b56iguf91luoge 192.168.100.11:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. [root@xserver2 ~]# docker swarm join --token SWMTKN-1-31hn156p86fr6eo720rq9mqafckpw1who0i39dxv9m3tbpjd0l-86zun6fgtb3b56iguf91luoge 192.168.100.11:2377 This node joined a swarm as a worker. [root@xserver1 centos-jdk]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION 80cisraj17qq1tuawca29a8b1 * xserver1 Ready Active Leader 18.09.6 dsot82834vazufdo3x9y79lgj xserver2 Ready Active 18.09.6 [root@xserver1 ~]# docker tag 4cda95efb0e4 portainer/portainer:latest [root@xserver1 ~]# docker service create \ --name portainer \ --publish 9000:9000 \ --replicas=1 \ --constraint 'node.role == manager' \ --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \ --mount type=volume,src=portainer_data,dst=/data \ portainer/portainer -H unix:///var/run/docker.sock # 访问浏览器 访问IP:9000,设置密码
2021年12月04日
265 阅读
0 评论
0 点赞
2021-08-06
kvm虚拟化基础
KVM虚拟化 虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。 宿主机 内存 大于 4G 纯净的操作系统 ( 版本做好为稳定版) 关闭 selinux && firewalld && NetworkManager systemctl stop firewall && systemctl disbale firewalld systemctl stop NetworkManager && systemctl disbale NetworkManager setenforce 0 && sed -i 's/SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config linux 虚拟化软件的差别 linux虚拟化软件 qemu 软件纯模拟全虚拟化软件,特别慢!兼容性好! xen(半) 性能特别好,需要使用专门修改之后的内核,兼容性差! kvm(linux) 全虚拟化,它有硬件支持cpu,内置在linux内核模块,而且不需要使用专门的内核 vmware workstations 图形界面 virtual box 图像化界面 安装 kvm 虚拟化管理工具 kvm kernel-based virtual machine libvirt 作用:管理虚拟机 虚拟类型:kvm,xen,qemu 等 virt 作用:安装、克隆虚拟机的工具(virt-install\virt-clone) qemu-kum、qemu-img 作用:管理虚拟机的虚拟磁盘 配置 base 源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 安装 rpm包 yum install libvirt virt-install qemu-kvm -y 启动 libvirtd systemctl start libvirtd.service && systemctl enable libvirtd.service 安装一台kvm虚拟机 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 \ --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 \ --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso \ --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --virt-type kvm 虚拟化的类型(qemu) --os-type=linux 系统类型 --os-variant rhel7 系统版本 --name centos7 虚拟机的名字 (必须唯一) --memory 1024 虚拟机的内存 --vcpus 1 虚拟cpu的核数 --disk /opt/centos2.raw,format=raw,size=10(必须唯一) --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso 系统光盘 --network network=default 使用默认NAT的网络 --graphics vnc,listen=0.0.0.0 --noautoconsole (可有可无) VNC 连接 IP:5900 安装系统注意事项: 分区 只保留根分区 关闭内核奔溃备份机制(KDUMP) 打开网卡开机自启 修改时区 亚洲/上海 安装重启后在宿主机启动虚拟机 virsh 管理&配置 # 查看虚拟机列表(--all) virsh list # 查询 VNC 端口号 virsh vncdisplay <host> # 开启虚拟机 virsh start <host> # 关闭虚拟机 virsh shutdown <host> # 断电关机 virsh destroy <host> # 重启虚拟机 virsh reboot <host> # 挂起虚拟机 virsh suspend <host> # 恢复虚拟机 virsh resume <host> # 开机自启 (注:libvirtd 开机自启) virsh autostart <host> # 取消开机自启 virsh autostart --disable <host> # 导出配置 virsh dumpxml centos7 > vm_centos7.xml # 删除配置 (先关机) virsh undefine centos7 # 导入配置 (重启生效) virsh define vm_centos7.xml # 修改配置 virsh edit centos7 # 重命名虚拟机 (低版本不支持) virsh domrename centos7 web01 ## kvm 虚拟机允许console登录 (注:在 kvm虚拟机内操作) grubby --update-kernel=ALL --args="console=ttyS0,115200n8" reboot # console登录虚拟机 virsh console centos7 虚拟磁盘管理 raw: 俗称裸格式,占用空间比较大,不支持快照功能,不方便传输 ,读写性能较好 qcow2: qcow(copy on write)的升级版,占用空间小,支持快照,性能比raw差一点,方便传输 # 查看虚拟磁盘信息 qemu-img info test.qcow2 # 创建虚拟硬盘 qemu-img create -f qcow2 test.qcow2 2G # 调整磁盘磁盘容量(只增不减) qemu-img resize test.qcow2 +20G # 磁盘格式转换 qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2 # 调整虚拟机磁盘格式 # 1. 格式转换 qemu-img convert -f raw -O qcow2 oldboy.raw web01.qcow2 # 2. 修改配置文件 virsh edit web01 # 修改 格式和路径 # <driver name='qemu' type='qcow2'/> # <source file='/opt/web01.qcow2'/> # 3. 重启虚拟机 virsh destroy web01 virsh start web01 快照管理 # 创建快照 virsh snapshot-create-as centos7 --name install_ok # 查看快照 virsh snapshot-list centos7 # 还原快照 virsh snapshot-revert centos7 --snapshotname install_ok # 删除快照 virsh snapshot-delete centos7 --snapshotname install_ok # raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中 虚拟机克隆 完整克隆 自动 virt-clone --auto-clone -o centos7 -n web02 手动(可以压缩空间 -c) # 1.生成磁盘文件 qemu-img convert -f qcow2 -O qcow2 -c web02.qcow2 web03.qcow2 -c # 2.导出虚拟机配置文件 virsh dumpxml web02 >web03.xml # 3.修改虚拟机配置 vim web03.xml ## 修改虚拟机的名字 ## 删除虚拟机uuid ## 删除mac地址mac add ## 修改磁盘路径disk # 4.导入虚拟机配置 virsh define web03.xml # 5.启动虚拟机 virsh start web03 链接克隆 手动 # 1.生成虚拟机磁盘文件 qemu-img create -f qcow2 -b web03.qcow2 web04.qcow2 # 2.生成虚拟机配置文件 virsh dumpxml web03 >web04.xml # 3.修改虚拟机配置文件 vim web04.xml ##修改虚拟机的名字 ##删除虚拟机uuid ##删除mac地址 ##修改磁盘路径 # 4.导入虚拟机并进行启动测试 virsh define web04.xml # 5.启动虚拟机 virsh start web04 自动(脚本) [root@kvm scripts]# cat link_clone.sh #!/bin/bash old_vm=$1 new_vm=$2 #a:生成虚拟机磁盘文件 old_disk=`virsh dumpxml $old_vm|grep "<source file"|awk -F"'" '{print $2}'` disk_tmp=`dirname $old_disk` qemu-img create -f qcow2 -b $old_disk ${disk_tmp}/${new_vm}.qcow2 #b:生成虚拟机的配置文件 virsh dumpxml $old_vm >/tmp/${new_vm}.xml #修改虚拟机的名字 sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml #删除虚拟机uuid sed -i '/<uuid>/d' /tmp/${new_vm}.xml #删除mac地址 sed -i '/<mac address/d' /tmp/${new_vm}.xml #修改磁盘路径 sed -ri "s#(<source file=')(.*)('/>)#\1${disk_tmp}/${new_vm}.qcow2\3#g" /tmp/${new_vm}.xml #c:导入虚拟机并进行启动测试 virsh define /tmp/${new_vm}.xml virsh start ${new_vm} sh link_clone.sh centos7 web05
2021年08月06日
238 阅读
0 评论
0 点赞
2021-05-29
openstack 运维
Glance 创建镜像 glance image-create --name "cirros-0.3.2" --disk-format qcow2 \ --container-format bare --progress < cirros-0.3.2-x86_64-disk.img 查看镜像列表 glance image-list 查看镜像详细信息 glance image-show <ID> 删除镜像 glance image-delete <ID> 更新镜像 glance image-update [opt] <ID> Nova Nova 对镜像进行管理 通过快照创建镜像。 nova image-create [--show] [--poll] <server> <name> :做快照的实例的 名字 / ID :快照名字 查询镜像列表 nova image-list 查询镜像详细信息 nova image-show <image> : ID / 镜像名字 Nova 管理安全组规则 创建安全组 nova secgroup-create <name> <description> : 安全组名字 : 安全组描述 安全组添加规则 nova secgroup-add-rule <secgroup> <ip-proto> <from-port> <to-port> <cidr> : 安全组名字戒者 ID : IP协议(icmp,tcp,udp) :起始端口 :结束端口 :网络地址 Nova 管理虚拟机类型 创建一个虚拟机类型 nova flavor-create [--ephemeral <ephemeral>] 临时磁盘大小,单位为 GB [--swap <swap>] 交换分区大小 [--rxtx-factor <factor>] 传输因子,默认 1 [--is-public<is-public>] 是否共享 <name> <id> <ram> <disk> <vcpus> 固定参数说明: :虚拟机类型名字 :虚拟机类型 ID :虚拟内存大小 :磁盘大小 :虚拟内核个数 Nova 实例管理 启动实例 nova boot [--flavor <flavor>] 虚拟机类型 [--image <image>] 选用的镜像 [--image-with <key=value>] 镜像的元数据属性 [--boot-volume <volume_id>] 启动逻辑卷的 ID [--snapshot <snapshot_id>] 快照 [--num-instances <number>] 实例数量 [--meta<key=value>] 元数据 [--file <dst-path=src-path>] 文件 [--key-name <key-name>] 密钥名称 [--user-data <user-data>] 注入的用户数据 [--availability-zone <availability-zone>] 可用域 [--security-groups <security-groups>] 安全组 [--block-device-mapping <dev-name=mapping>] 块存储格式化 [--block-device key1=value1[,key2=value2...]] 块设备参数 [--swap <swap_size>] 交换分区大小 [--ephemeral size=<size>[,format=<format>]] 连接块存储大小 [--hint <key=value>] 自定义数据 [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,port-id=port-uuid>] 配置 IP [--config-drive <value>] 驱动使能 [--poll] 显示创建进度 <name> : 实例名称 查看实例列表 nova list 查看实例具体的配置信息 nova flavor-show m1.small 查看该实例在机器的具体位置的命令如下 nova show Cloud_test Nova 对逻辑卷的管理 通过 Nova 创建逻辑卷 nova volume-create [--snapshot-id <snapshot-id>] 通过快照创建逻辑卷的快照ID [--image-id <image-id>] 通过快照创建逻辑卷的镜像ID [--display-name <display-name>] 逻辑卷名称 [--display-description <display-description>] 逻辑卷描述 [--volume-type <volume-type>] 逻辑卷类型 [--availability-zone <availability-zone>] 逻辑卷可用域 <size> :大小 Neutron 列出系统扩展命令 neutron ext-list -c alias -c name 创建网络 neutron net-create ext-net --shared --router:external=True 创建子网 neutron subnet-create ext-net \ --name ext-subnet \ --allocation-pool start=172.24.7.100,end=172.24.7.200 \ --disable-dhcp \ --gateway 172.24.7.254 \ 172.24.7.0/24 创建用户网络 neutron net-create demo-net 创建用户子网 neutron subnet-create demo-net --name demo-subnet \ --gateway 10.0.0.1 \ 10.0.0.0/24 创建路由 neutron router-create router1 创建路由网关接口 neutron router-interface-add router1 demo-subnet \ Added interface 70c3c2af-cc96-4e5c-80aa-d9797656e836 to router router1 neutron router-gateway-set router1 ext-net \ Set gateway for router router1 Cinder 创建卷类型 cinder type-create lvm 查询 type 标识的卷类型 cinder type-list 创建 cinder 存储卷 cinder create [--consisgroup-id <consistencygroup-id>] [--snapshot-id <snapshot-id>] 从特定的快照来创建 [--source-volid <source-volid>] 从已创建的Cinder卷来创建一张内容相同的卷 [--source-replica <source-replica>] [--image-id <image-id>] 从一个已创建的镜像来构建一个带镜像内容的Cinder卷 [--image <image>] [--name <name>] Cinder卷的名字 [--description <description>] 描述信息 [--volume-type <volume-type>] 指定卷类型 [--availability-zone <availability-zone>] 指定可用域 [--metadata [<key=value> [<key=value> ...]]] 指定属性信息 [--hint <key=value>] [--allow-multiattach] [<size>] 删除指定的 Cinder 卷 cinder delete <volume> [<volume> ...] 创建 Cinder 卷快照 cinder snapshot-create [--force [<True|False>]] 强制创建 [--name <name>] [--description <description>] [--metadata [<key=value> [<key=value> ...]]] <volume> 查看 Cinder 卷、快照信息 查看卷列表 cinder list 查看指定于硬盘的详细信息 cinder show 0643885c-1dc7-4f9f-9309-382c54cc6790 Swift 显示账户、对象或容器的信息 swift stat [container] [object] [container]:容器名称 [object] :对象名称 列出该账户的容器戒容器的对象 Swift list [command-options] [container] [command-options]:选项 [container]:容器名称 创建 容器 swift post [command-options] [container] [object] [command-options]:选项 [container]:容器名称 [object]:对象名称 文件传到容器内 swift upload [command-options] container file_or_directory [file_or_directory] [...] [command-options]:选项 Container:容器名称,或者是容器内的目录 file_or_directory:本地文件系统内的目录或者文件 [file_or_directory] :本地文件系统内的目录或者文件,可同时上传多个目录或文件。 下载容器中的对象 swift download [command-options] [container] [object] [object] [...] [command-options]:选项 [container]:容器名称 [object]:对象名称(可同时下载多个对象) 删除容器中的对象 swift delete [command-options] [container] [object] [object] [...] [command-options]:选项 [container]:容器名称 [object]:对象名称(可同时下载多个对象)
2021年05月29日
195 阅读
0 评论
0 点赞
2021-05-23
Docker 基础操作
{mtitle title="Docker 基础操作"/} image 获取镜像 镜像查询 docker search centos 镜像拉取 docker pull centos:6.9 镜像基本查看 [root@docker ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos 6.8 82f3b5f3c58f 4 months ago 195 MB centos 6.9 2199b8eb8390 4 months ago 195 MB centos 7.5.1804 cf49811e3cdb 4 months ago 200 MB centos 7.6.1810 f1cb7c7d58b7 4 months ago 202 MB 标识镜像唯一性的方法: 1. REPOSITORY:TAG centos:7.5.1804 2. IMAGE ID (sha256:64位的号码,默认只截取12位) 82f3b5f3c58 [root@docker /]# docker image ls --no-trunc 镜像详细信息查看 docker image inspect ubuntu:latest docker image inspect 82f3b5f3c58f 只查看镜像ID docker image ls -q 镜像的导入和导出 # 导出 docker image save 3556258649b2 >/tmp/ubu.tar # 导入 docker image load -i /tmp/ubu.tar docker image tag 3556258649b2 youto/ubu:v1 镜像的删除 docker image rm -f 3556258649b2 # 删除所有镜像 docker image rm -f `docker image ls -q` container 交互式的容器 docker container run -it 9f38484d220f docker container ls # CONTAINER ID : 容器的唯一号码(自动生成的) # NAMES : 容器的名字(可以自动,也可以手工指定) # STATUS : 容器的运行状态 ( Exited , Up) # 手工指定容器名启动 docker container run -it --name="youto_centos76" 9f38484d220f 守护式容器 docker run -d --name="youto_nginx" nginx:1.14 # 查询容器的详细信息: docker container inspect youto_nginx 容器的应用场景 # 交互式的容器: 工具类: 开发,测试,临时性的任务() docker container run -it --name="youto_cent76" --rm 9f38484d220f # 守护式容器: 网络服务 docker run -d -p 8080:80 --name="youto_nginx_80" nginx:1.14 守护式容器的关闭和启动 # 守护式容器的关闭和启动 docker container stop oldguo_nginx_80 docker container start oldguo_nginx_80 # 交互式的容器的关闭和启动 docker container stop nervous_allen docker container start -i nervous_allen # 容器的连接方法: docker container attach nervous_allen # 子进程的方式登录(在已有工作容器中生成子进程,做登录.可以用于进行容器的调试,退出时也不会影响到当前容器) docker container exec -it nervous_allen /bin/bash # 容器的后台及前台运行: 1. ctrl + P, Q attach 调用到前台 2. 死循环 3. 让程序前台一直允许(夯在前台) 制作守护式容器时,常用的方法 容器的端口映射 指定映射(docker 会自动添加一条iptables规则来实现端口映射) -p hostPort:containerPort -p ip:hostPort:containerPort -p ip::containerPort(随机端口:32768-60999) -p hostPort:containerPort/udp -p 81:80 –p 443:443 随机映射 docker run -P 80(随机端口) docker container run -d -p 8080:80 --name='n2' nginx:1.14 docker container run -d -p 10.0.0.100:8081:80 --name='n3' nginx:1.14 docker container run -d -p 80 --name='n5' nginx:1.14 docker container run -d -p 172.16.1.200::80 --name='n6' nginx:1.14 容器的其他管理 docker ps -a -q 等价于: docker container ls -a -q docker top ba9143bcaf74 等价于: docker container top ba9143bcaf74 查看日志: docker logs testxx docker logs -tf testxx docker logs -t testxx docker logs -tf --tail 10 testxx docker logs -tf --tail 0 testxx 命令总结 镜像类 docker image search pull ls inspect rm save load 容器类 docker container run start stop restart kill attach exec ls top logs inspect 数据卷 1. 手工交互数据: [root@docker opt]# docker container cp index.html n1:/usr/share/nginx/html/ [root@docker opt]# docker container cp n1:/usr/share/nginx/html/50x.html ./ 2. Volume实现宿主机和容器的数据共享 [root@docker opt]# mkdir -p /opt/html [root@docker ~]# docker run -d --name="nginx_3" -p 83:80 -v /opt/html:/usr/share/nginx/html nginx 作用: 数据持久化 3. 例子: 开启两个nginx容器(90,91),共同挂载一个数据卷,实现静态资源共享 4. 数据卷容器: (1)宿主机模拟数据目录 mkdir -p /opt/Volume/a mkdir -p /opt/Volume/b touch /opt/Volume/a/a.txt touch /opt/Volume/b/b.txt (2)启动数据卷容器 docker run -it --name "nginx_volumes" -v /opt/Volume/a:/opt/a -v /opt/Volume/b:/opt/b centos:6.9 /bin/bash ctrl p q (3)使用数据卷容器 docker run -d -p 8085:80 --volumes-from nginx_volumes --name "n8085" nginx docker run -d -p 8086:80 --volumes-from nginx_volumes --name "n8086" nginx 作用: 在集中管理集群中,大批量的容器都需要挂载相同的多个数据卷时,可以采用数卷容器进行统一管理
2021年05月23日
178 阅读
0 评论
0 点赞
1
2
3
4