table { border: #ddd solid 1px; } td, th { padding: 8px; border: #ddd solid 1px; } td p { font-size: 15px !important; }
In this post, continuing our series on setting up Red Hat Satellite for VMware to provision virtual machines (VMs) from Satellite, we'll look at creating templates for use with VMware.
Create VM Template on VMware
We will now create a VM template on VMware which we will use when provisioning RHEL VMs from Satellite. We will create a RHEL 8.3 template for the exercise which prepares us for a future tutorial where we update our RHEL VM via Satellite.
First you will need to upload any RHEL ISO files to the VMware environment you will need for the RHEL VM we will be creating. For RHEL 8.3 I uploaded the rhel-8.3-x86_64-dvd.iso file.
Create and start the RHEL VM. Choose 1 CPU with 2 GB of RAM and 20GB disk space. You will use the web console to interact with the VM and configure it. You will need to set the language, define the disk and set the root password. Start the installation and reboot the system per the installation instruction. After the system has rebooted, login as root and start a terminal session for the remainder of the configuration.
Check to see if the the ethernet connection is active and if not active, run the connect command
# nmcli device status # nmcli device connect ens192 # nmcli device show ens192
We will temporarily configure the network device as we will need a network connection during the setup of the template
[root@localhost ~]# nmcli con modify ens192 connection.id ens192 [root@localhost ~]# nmcli con mod ens192 ipv4.method auto [root@localhost ~]# nmcli con edit ens192 nmcli> remove ipv4.dns nmcli> set ipv4.ignore-auto-dns yes nmcli> set ipv4.dns 10.1.10.254 nmcli> save nmcli> quit [root@localhost ~]# nmcli device reapply ens192 [root@localhost ~]# nmcli device show ens192 [root@localhost ~]# hostnamectl set-hostname "localhost.localdomain"
We will now need to temporarily subscribe to Satellite to access template packages. Note: Here for the--org
parameter we use the Operations Department (operations
) label.
# rpm -ivh http://sat01.example.com/pub/katello-ca-consumer-latest.noarch.rpm # subscription-manager register --org=operations --activationkey=ak-ops-rhel8-prem-server
To support the creation of the VM template, we will install the following the cloud-init
, open-vm-tools
and perl
packages.
# yum -y install cloud-init open-vm-tools perl
Enable the CA certificates for the image.
# update-ca-trust enable
Download the katello-server-ca.crt file from Satellite Server.
# wget -O /etc/pki/ca-trust/source/anchors/cloud-init-ca.crt http://sat01.example.com/pub/katello-server-ca.crt
To update the record of certificates, enter the following command.
# update-ca-trust extract Configure cloud-init to skip networking. # cat << EOF > /etc/cloud/cloud.cfg.d/01_network.cfg network: config: disabled EOF
We set up the cloud-init to make a call back to Satellite.
# cat << EOF > /etc/cloud/cloud.cfg.d/10_foreman.cfg datasource_list: [NoCloud] datasource: NoCloud: seedfrom: http://sat01.example.com/userdata/ EOF
Make up a backup of the default cloud-init
file.
# cp /etc/cloud/cloud.cfg ~/cloud.cfg.`date -I`
Replace the default cloud-init
file.
# cat << EOF > /etc/cloud/cloud.cfg
cloud_init_modules:
- bootcmd
cloud_config_modules:
- runcmd
cloud_final_modules:
- scripts-per-once
- scripts-per-boot
- scripts-per-instance
- scripts-user
- phone-home
system_info:
distro: rhel
paths:
cloud_dir: /var/lib/cloud
templates_dir: /etc/cloud/templates
ssh_svcname: sshd
# vim:syntax=yaml
EOF
We will now unregister the server from Satellite
# subscription-manager unregister Unregistering from: sat01.example.com:443/rhsm System has been unregistered. # subscription-manager clean All local data removed
We will create a clean up script. Remember to hit Ctrl-D after the cat
command or just copy and paste the content here (minus the cat
command line) into a file named clean.sh
.
# cat > ~/clean.sh <<EOF #!/bin/bash # stop logging services /usr/bin/systemctl stop rsyslog /usr/bin/service stop auditd # remove old kernels # /bin/package-cleanup -oldkernels -count=1 #clean yum cache /usr/bin/yum clean all #force logrotate to shrink logspace and remove old logs as well as truncate logs /usr/sbin/logrotate -f /etc/logrotate.conf /bin/rm -f /var/log/*-???????? /var/log/*.gz /bin/rm -f /var/log/dmesg.old /bin/rm -rf /var/log/anaconda /bin/cat /dev/null > /var/log/audit/audit.log /bin/cat /dev/null > /var/log/wtmp /bin/cat /dev/null > /var/log/lastlog /bin/cat /dev/null > /var/log/grubby #remove udev hardware rules /bin/rm -f /etc/udev/rules.d/70* #remove uuid from ifcfg scripts /bin/cat > /etc/sysconfig/network-scripts/ifcfg-ens192 <<EOM DEVICE=ens192 ONBOOT=yes EOM #remove SSH host keys /bin/rm -f /etc/ssh/*key* #remove root users shell history /bin/rm -f ~root/.bash_history unset HISTFILE #remove root users SSH history /bin/rm -rf ~root/.ssh/known_hosts EOF
Run the clean script.
sh ~/clean.sh
Finally we will power off the system to make the VMware template.
# systemctl poweroff
Now we will return to the the vCenter console and convert the VM to a template. Name the template template-rhel8-cloudinit.
Back on the Satellite side...
First we will define RHEL 8.3 as an operating system choice. Make sure you are in the Operations Department organization and the moline locations. On the side menu choose Hosts -> Operating Systems.
On the Operating Systems page click the blue Create Operating System button.
On the Operating Systems > Create Operating Systems page fill in or choose options from the following table, and click the blue Submit button. We will only be filling in information on the Operating System tab and accept the default settings for any other tabs on this page. We will revisit this page in a few minutes to update the template tab. After filling in the information, click the blue Submit button.
Name |
Choice |
Name* |
RedHat |
Major Version* |
8 |
Minor Version |
3 |
Family |
RedHat |
Architecture |
x86_64 |
Next we will create a cloud-init template. Login into Satellite server's command line and switch to root user. In the root user's home direct create the following cloud-init template. Note: The cloud-init template we are creating will also register your RHEL VM to Satellite and Insights.
# cat > ~/vmware-cloud-init-template.erb <<EOF #cloud-config hostname: <%= @host.name %> fqdn: <%= @host %> manage_etc_hosts: true users: {} runcmd: - touch ~/cloud-init - | <%= indent(2) { snippet 'redhat_register' } -%> - | <%= indent(2) { snippet 'insights' } -%> - | phone_home: url: <%= foreman_url('built') %> post: [] tries: 10 EOF
From Hammer, let's get the ids for the operating system, architecture, and compute resources.
$ hammer os list; hammer architecture list; hammer compute-resource list ---|------------|--------------|------- ID | TITLE | RELEASE NAME | FAMILY ---|------------|--------------|------- 1 | RedHat 7.9 | | Redhat 2 | RedHat 8.3 | | Redhat ---|------------|--------------|------- ---|------- ID | NAME ---|------- 1 | x86_64 2 | i386 ---|------- ---|------------|--------- ID | NAME | PROVIDER ---|------------|--------- 4 | cr-vcenter | VMware ---|------------|---------
Now we will create our cloud-init template on Satellite.
# hammer template create --name vmware-cloud-init --file ~/vmware-cloud-init-template.erb --locations moline --organizations "Operations Department" --operatingsystem-ids 2 --type cloud-init Provisioning template created.
For the user data we can use the UserData open-vm-tools template that is provided with Satellite. We will need to associate the UserData open-vm-tools template with RHEL 8.3. Chose Hosts -> Provisioning Templates from the side menu.
On the Provisioning Templates page, type userdata
in the search field and the click Search button. On the resulting list, click on the UserData open-vm-tools link.
On the Provisioning Templates > Edit UserData open-vm-tools page click the Association tab. Next click RedHat 8.3 in the Applicable Operating Systems section All Items list and it will move over to the Selected Items list. Click the blue Submit button.
Creat an image in Satellite link the vCenter template
# hammer compute-resource image create --operatingsystem-id 2 --architecture-id 1 --compute-resource-id 4 --user-data true --uuid template-rhel8-cloudinit --username root --name img-rhel8-prem-server Image created.
Let's update the RHEL 8.3 Operating System to use the correct templates for our deployment.
Make sure you are in the Operations Department organization and the moline locations. On the side menu choose Hosts -> Operating Systems.
Now click on the RedHat 8.3 Link.
On the Operating Systems > Editing RedHat 8.3 page, click on the Templates tab. Chose following options from the appropriate dropdown list. When you are finished click the blue Submit button.
Option Name |
Choice |
Cloud-init template |
vmware-cloud-int |
User data template |
UserData open-vm-tools |
We are finished here.
I would also recommend checking to see if the VM we created for our template on vSphere has been removed from Satellite. If not, we will want to delete it. First make sure you have set organization to Any Organization and location to Any Location. From the side menu choose Hosts -> All Hosts.
Click on the Edit drop down button in the far right column for the localhost.localdomain host, and choose Delete.
In the dialog box that says "Are you sure you want to delete host localhost.localdomain? This action is irreversible.", click the OK button.
Be sure to see the previous post in this series, "How to prepare Red Hat Satellite for VMWare integration," and the rest. We'll be back next week with the next steps!
References
- Installing Satellite Server from a Connected Network
- Simple Content Access
- Provisioning VMware using userdata via Satellite 6.3-6.6
- Understanding Red Hat Content Delivery Network Repositories and their usage with Satellite 6
Provisioning RHEL virtual machines to vSphere from Red Hat Satellite
In this multi-part tutorial, we cover how to provision Red Hat Enterprise Linux (RHEL) virtual machines (VMs) to a vSphere environment from Red Hat Satellite. Missed any steps in the series? Check them out:
執筆者紹介
Paul Lucas is a Chicagoland-based Red Hat Solutions Architect working with a variety of enterprise businesses. A 21 year technical sales veteran, Paul was previously a customer working at a benefits consulting firm, where he advised development teams on the use of Java and the then-emerging Java EE.
チャンネル別に見る
自動化
テクノロジー、チームおよび環境に関する IT 自動化の最新情報
AI (人工知能)
お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート
オープン・ハイブリッドクラウド
ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。
セキュリティ
環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報
エッジコンピューティング
エッジでの運用を単純化するプラットフォームのアップデート
インフラストラクチャ
世界有数のエンタープライズ向け Linux プラットフォームの最新情報
アプリケーション
アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細
オリジナル番組
エンタープライズ向けテクノロジーのメーカーやリーダーによるストーリー
製品
ツール
試用、購入、販売
コミュニケーション
Red Hat について
エンタープライズ・オープンソース・ソリューションのプロバイダーとして世界をリードする Red Hat は、Linux、クラウド、コンテナ、Kubernetes などのテクノロジーを提供しています。Red Hat は強化されたソリューションを提供し、コアデータセンターからネットワークエッジまで、企業が複数のプラットフォームおよび環境間で容易に運用できるようにしています。
言語を選択してください
Red Hat legal and privacy links
- Red Hat について
- 採用情報
- イベント
- 各国のオフィス
- Red Hat へのお問い合わせ
- Red Hat ブログ
- ダイバーシティ、エクイティ、およびインクルージョン
- Cool Stuff Store
- Red Hat Summit