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 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.