OpenstackのCentOS7イメージをカスタマイズします

記事のディレクトリ

 

OpenStackイメージの作成で考慮すべきこと

VMware Workstationでcentosシステム仮想マシンを準備し、VTおよびCPUパフォーマンスカウンターを有効にします

CentOS-7-x86_64-Minimal-2003.iso イメージは、centosの最小バージョンです。

Minimalは公式の最小のcentosイメージファイルであり、他の通常サイズのisoファイルも使用できます。

1. kvmをインストールし、libvirtdを起動して、起動するように設定します

コンピューティングノードが仮想マシンのハードウェアアクセラレーション(0ではない)をサポートしているかどうかを確認します

egrep -c '(vmx|svm)' /proc/cpuinfo
  • 1

kvmをインストールし、libvirtdを起動して、起動するように設定します

yum install libvirt virt-install qemu-kvm -y 
systemctl start libvirtd && systemctl enable libvirtd

#使用ifconfig命令,可以看到多出一个virbr0的网卡

イメージを保存するディレクトリを作成し、CentOS7のイメージをこのディレクトリにアップロードします

mkdir -p /opt/image

#上传镜像,上传完成后开始创建虚拟机;使用centos最小版镜像
wget -c http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2003.iso -P /opt/image

5G仮想マシンのハードディスクを作成する

イメージのサイズによっては、将来RAW形式に変換する必要がある場合、仮想ハードディスクのスペースを占有する可能性
があります。RAWイメージのパフォーマンスは良好ですが、スケーリングとスナップショットの機能。仮想マシンの作成と移行には時間がかかります。、実際のオンラインクラウド環境の使用には適用されません。qcow2の使用をお勧めします。

qemu-img create -f qcow2 /tmp/centos7.qcow2 5G

#这里的大小不是占用你当前磁盘的大小而是将要制作的云镜像的系统盘大小
chmod 777 centos7.qcow2
#添加权限

2. 仮想マシンを作成します

virt-install --virt-type kvm \
--os-type=linux \
--os-variant centos7.0 \
--name centos7 \
--ram 1024 \
--disk /tmp/centos7.qcow2,format=qcow2 \
--cdrom /opt/image/CentOS-7-x86_64-Minimal-2003.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole 

#参数含义请百度
  •  

VNCを使用してVNCViewerリモートデスクトップダウンロードリンクに接続し
ます

[root@kvm image]# netstat -lntup|grep 5900
tcp    0    0 0.0.0.0:5900        0.0.0.0:*        LISTEN     25986/qemu-kvm

3. システムのインストール手順に関する簡単なヒント

ネットワークカード名をethに変更します

选择第一个 Install CentOS 7
敲Tab键出现字时 , 接着输入 net.ifnames=0 biosdevname=0 ,然后回车

上海の時間を選択してください

パーティション、すべての容量はルートパーティションに与えられ、ルートパーティションは1つだけです

構成を完了し、rootパスワードを設定します

インストールが完了したら、[再起動]をクリックすると、システムがシャットダウンし、再起動しません。この時点で、コマンドを使用して、ホスト上に作成されたばかりの仮想マシンを表示できます。

[root@kvm image]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos7                        shut off

#启动虚拟机
[root@kvm image]# virsh start centos7
Domain centos7 started


#删除不用的虚拟机
 virsh undefine  centos7

#停止主机:virsh destroy linux65

4.構成のために仮想マシンに接続します

起動後、VNCツールを介して再度接続し、IP構成、システム最適化、共通ソフトウェアのインストール、yumソースの構成、クラウドミラーリングの初期化機能などを実行します。

新しく作成された仮想マシンでの操作:

ホスト経由で接続

一般的なソフトウェアをインストールし、yumsourceを構成します

yum install -y wget 
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum install -y mlocate lrzsz tree vim nc nmap bash-completion bash-completion-extras cowsay sl htop iotop iftop lsof net-tools sysstat unzip bc psmisc ntpdate wc telnet-server bind-utils

ファイアウォールをオフにし、selinuxをオフにします

setenforce 0
sed -i 's#enforcing#disabled#' /etc/sysconfig/selinux
systemctl stop firewalld && systemctl disable firewalld

sshdはsshd.configファイルを最適化および変更しました

[root@centos7 ~]# vim /etc/ssh/sshd_config
GSSAPIAuthentication yes
UseDNS no

ネットワークを編集した後、ネットワークカードを再起動します
。openstackインスタンスの作成時に割り当てられたIPを確実に取得できるように、カスタマイズされたイメージのネットワークカード構成ファイルをdhcpで構成する必要があります。
この図の構成は冗長DEFROUTE=yesです。構成の3行目を削除してください。そうしないと、このイメージを使用してインスタンスを作成した後、IPを取得できません。

TYPE=Ethernet
BOOTPROTO=dhcp
NAME=eth0
DEVICE=eth0
ONBOOT=yes

この図は、ミラーリングされたネットワークカードの変更された構成ファイルを示しています


グラフィカルインターフェイスをインストールする必要がある場合は、以下のリンクを参照して
くださいhttps://www.jianshu.com/p/bdd29c1e1dd9

5.cloud-init初期化の使用と構成※

前回の記事:クラウドサーバーcloud-init初期化ツールの使用法と構成
cloud-init公式ドキュメント
クラウドプラットフォームでは、クラウドホストを作成するときに、ip、ホスト名の構成など、ホスト上でいくつかの初期化操作を実行できるようにしたいと考えています。 、パスワード、sshログイン待機します。Cloud-initは、openstackでの初期化に使用できます。

公式のcloud-initドキュメントを読み、それを数回読んで、何が構成されているか、これらの構成項目がどのように有効になるか、モジュールの頻度を確認することをお勧めします。

クラウドホストに初期構成を実装するには、クラウドホストは最初にユーザーが入力した構成データを取得し、cloud-initのcdromモードで読み取る必要があります。つまり、openstackはユーザーデータをisoにパッケージ化し、マウントします。クラウドホスト。ホストが起動した後、内部のcloud-initはデフォルトでcdromからデータを読み取り、初期化操作を実行します。

ユーザーとグループモジュールのモジュール頻度は、インスタンスごとに1回実行されます。つまり、作成されたイメージにクラウドホストが含まれると、モジュール構成の変更とマシンの再起動は有効になりません。
ユーザーおよびグループモジュールのモジュール頻度と同様に、Write_filesモジュールとSetPasswordsモジュールがあります。
Bootcmdモジュールのモジュール頻度は、各インスタンスを複数回実行できることです。つまり、クラウドホストの起動後、モジュール構成の変更とマシンの再起動も有効になります。
Bootcmdモジュールのモジュール頻度はRuncmdに似ています。

設定が完了したら、仮想マシンをシャットダウンして次の段階に備えます

history -c
shutdown -h now
  • 6.centosイメージをopenstackにアップロードします

Cephストレージをドッキングする場合。qcow2形式をraw形式のイメージに変換してCephをアップロードでき
ます。欠点は、qcow2形式のイメージからの起動がサポートされていないため、raw形式のイメージを変換する必要があることです。

[root@kvm image]# ll -h /tmp/centos7.qcow2 
-rw-r--r--. 1 root root 1.6G May 20 17:27 /tmp/centos7.qcow2

#将镜像从qcow2格式转换为raw格式;并下载到本地 【可选】
[root@kvm image]# qemu-img convert -f qcow2 -O raw /tmp/centos7.qcow2 CentOS-7-x86_64-Minimal-2003.raw

openstackのglanceノード(コントローラーノード上)に画像をアップロードします

openstack image create --container-format bare --disk-format raw --file /server/tools/CentOS-7-x86_64-Minimal-2003.raw --unprotected --public CentOS-7-x86_64-Minimal-2003


实际中使用的命令
openstack image create --container-format bare --disk-format raw --file /root/w_trove_pg_11_16.raw  --public  w_trove_pg_11_16.raw 
#从QEMU中检索块设备映像信息
[root@controller tools]# qemu-img info CentOS-7-x86_64-Minimal-2003.raw
image: CentOS-7-x86_64-Minimal-2003.raw
file format: raw
virtual size: 5.0G (5368709120 bytes)
disk size: 5.0G

cephのミラーと一瞥プールのデータを表示する

rbd ls images
e7439786-1143-43fe-a509-f84d666c3fbf

rbd info images/e7439786-1143-43fe-a509-f84d666c3fbf

注:本番環境での重複を避けるために、ログイン後にホスト名とIPを変更します。さらに、イメージの作成時にスクリプトを直接作成するか、イメージでcloud-init初期化サービスを構成できます。新しいクラウドホストの後で完了し、直接変更するホスト名とIPアドレス
がテナント独自のネットワークを構成し、フローティングIPが追加されます

[root@controller ~]# openstack server list
+--------------------------------------+------------+--------+----------------------------------------+-------+--------+
| ID                                   | Name       | Status | Networks                               | Image | Flavor |
+--------------------------------------+------------+--------+----------------------------------------+-------+--------+
| e5891fc5-63ca-43a8-bb92-bb512c1ec7e3 | K8s-master | ACTIVE | selfservice=172.18.1.33, 192.168.0.205 |       | CentOS |
+--------------------------------------+------------+--------+----------------------------------------+-------+--------+

#镜像中的cloud-init已经配置了controller节点的ssh免秘钥登陆
[root@controller ~]# ssh [email protected]
Last login: Fri May 21 17:17:24 2020 from 192.168.0.10
[root@k8s-master ~]#

必要なインスタンス環境を作成します

おすすめ

転載: blog.csdn.net/qq_42533216/article/details/113564734