Katello-4.2.0.rc1-1.el8 The first host you register as content host fails with bash error

Problem:

The first host that I kickstart with foreman will not complete the content host registration process.

When I say registration process, I am referring to the script that is generated from “hosts/register”

I’ll show the complete registration script to better make the point (I’m unconcerned with the credentials this is a throwaway test host

#!/bin/sh

# Rendered with following template parameters:
# User: [admin]
# Organization: [Default Organization]
# Location: [Default Location]
# Operating system: [CentOS_Linux 8]
# Update packages: [false]
# Lifecycle environment id: [2]
# Activation keys: [CentOS8]

if ! [ $(id -u) = 0 ]; then
    echo "Please run as root"
    exit 1
fi

if [ -f /etc/os-release ] ; then
  . /etc/os-release
fi

SSL_CA_CERT=$(mktemp)
cat << EOF > $SSL_CA_CERT
-----BEGIN CERTIFICATE-----
MIIHCDCCBPCgAwIBAgIUH4VMUW00f5W6HyMreDlDEBl3TwMwDQYJKoZIhvcNAQEL
BQAwgYQxCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4G
A1UEBwwHUmFsZWlnaDEQMA4GA1UECgwHS2F0ZWxsbzEUMBIGA1UECwwLU29tZU9y
Z1VuaXQxIjAgBgNVBAMMGWxhYjBsMjUudmlydHVhbC5ob21lLmFycGEwHhcNMjEw
OTE1MjAzMTMzWhcNMzgwMTE3MjAzMTMzWjCBhDELMAkGA1UEBhMCVVMxFzAVBgNV
BAgMDk5vcnRoIENhcm9saW5hMRAwDgYDVQQHDAdSYWxlaWdoMRAwDgYDVQQKDAdL
YXRlbGxvMRQwEgYDVQQLDAtTb21lT3JnVW5pdDEiMCAGA1UEAwwZbGFiMGwyNS52
aXJ0dWFsLmhvbWUuYXJwYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
ANnGPxgATuehWlB+Mwd6xgSgRdfHJIxcXnd0iDVjJAqs8hUCXzekjpe5KbZAOrr4
x8kLAU8HtLyBR3w9Xk7YPZcf0qVl1vSO24HriLYIRFbdyu22v0I1D0RjYrnXUC5J
EaMkI8NhYlwneiVm1VRmxzZnBV2xR3GRX1fGzHW443jxF8z9noQtiHnITtcYK44U
zYc6TtFw0FKf9MUCGllhEMD/pbfZJD5cVw5OK8fvzysRgV7x5twUmQ2gWpV7tePf
H1d/+xlHE17U01Jsfd42/2F+IHdZV+V/SXSPbD+WUdXKSEtSDwzMiclNqPtuhAg6
HSmjCVKS+YocV1VCBQcJDb2ctd2Mz9npysT+dXfYHuwZ6exDwMAeooZa66U3K4av
gKXSzRlFO8I4wJXQlk9AtNBz8ElMej4atFkquK6CPD+fHTuGhX/6YPHkBVsjDlyl
7b2SrXRSPVW9olgQE92UYODHYT/GJYOvUVpJavUcpKSP39Qjw4JCZrSDlxS+AkRl
/O7NvX+CSOVg3v/DLOXRVwZDdweSYsCNRktEus0yO5/UBruLrxFVo8uSBntXA/Oa
jxmjE41Mh9BLpfBaGNkdgAuKj9W49p2qEDwCGkq/ZWjxpt5/IiXFVQCRXlw3AXp8
zI/d98YR7QD1u1J/JVplPYEo0I3nn2dOKRi/pQmJsFTNAgMBAAGjggFuMIIBajAM
BgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI
KwYBBQUHAwIwEQYJYIZIAYb4QgEBBAQDAgJEMDUGCWCGSAGG+EIBDQQoFiZLYXRl
bGxvIFNTTCBUb29sIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUcv3p
M5EUkobXRICHe4d7qLDPzjcwgcQGA1UdIwSBvDCBuYAUcv3pM5EUkobXRICHe4d7
qLDPzjehgYqkgYcwgYQxCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJv
bGluYTEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwHS2F0ZWxsbzEUMBIGA1UE
CwwLU29tZU9yZ1VuaXQxIjAgBgNVBAMMGWxhYjBsMjUudmlydHVhbC5ob21lLmFy
cGGCFB+FTFFtNH+Vuh8jK3g5QxAZd08DMA0GCSqGSIb3DQEBCwUAA4ICAQCsFetF
C79UC6n4wKTw8LNAH8bCWGudDinp2zVnqcaOvQ1kxP+LpV4Uaf2ND2IVX0G8wRuA
PX7FKhCS+KU2C7vhRLH9H/n0/RbUPB+sCVPiqdh/yV9MBau1xZhYDK7GPLMzo+o8
BvhNEGT8P93ZF3Wh+sZNCeig+eIrK4QxlZokInA+xR6wT6NojnrdzJDqZlz/ee/M
hKLg251YCJCLDYAj3K8FdrGuik8Dnon9JwvttaCVgmRyFr3DKYbs9KsXDExon3rO
MbAyeQ7Sz85Aqpse+KPqV9m4BQRV4HYCDPJLCQIcn/Bt0kIFk3OIwHGymp7IDTH2
rSDNN59yRioJWwIQiI/hMahaZyYHyfyuW8V978UDk74lE/TI1goKJ9T3IMCfaaj+
Ej7g70C5qbpj0t8nWQqLsVhadZNC9MCN31+HvIsIiv2NS/h1JrJvDmyYIQJ2NlKU
e4r71uMxIj+K1z++CZ7FfAnY7GTIwcy0MX1axK66t7OSwTabH+rl2uiLid4lZEXS
fqxqHj+/TY6uTCBdjUYRJK4i7HPjepWINUeuGhIMrztgLxg8ka+l89nmh7exTIQv
Iqz/TlKeF+AITjsEVD3KtSYcNzgdlCvKLWIsQHET7scQTdceM84zA1KcGJV6nTAx
lgymgrkVDFEorKgwyPoXJfimSBSMBxhcPu8Y2w==
-----END CERTIFICATE-----

EOF


register_host() {
  curl --silent --show-error --cacert $SSL_CA_CERT --request POST https://lab0l25.virtual.home.arpa:9090/register \
       -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJpYXQiOjE2MzE3NDgyNDgsImp0aSI6IjFmNWNkMDBhZGVjZjFkNWY1NDQwYTEwZDZkMjY2ZTE2NGYzMDAwNDc3NDVhOWFlMTk0YzM4Nzk0ZjYxMDI1ZDUiLCJleHAiOjE2MzE3NjI2NDgsInNjb3BlIjoicmVnaXN0cmF0aW9uI2dsb2JhbCByZWdpc3RyYXRpb24jaG9zdCJ9._up0suoZrVH0n2MYRl4o55lAdAxcx3c93GVpS4-gvSg' \
       --data "host[name]=$(hostname --fqdn)" \
       --data "host[build]=false" \
       --data "host[managed]=false" \
       --data 'host[organization_id]=1' \
       --data 'host[location_id]=2' \
       --data 'host[operatingsystem_id]=2' \
       --data 'update_packages=false' \

}

echo "#"
echo "# Running registration"
echo "#"

if [ x$ID = xrhel ] || [ x$ID = xcentos ] || [ x$ID = xol ]; then
    register_katello_host(){
        UUID=$(subscription-manager identity | head -1 | awk '{print $3}')
        curl --silent --show-error --cacert $SSL_CA_CERT --request POST "https://lab0l25.virtual.home.arpa:9090/register" \
             --data "uuid=$UUID" \
             -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJpYXQiOjE2MzE3NDgyNDgsImp0aSI6IjFmNWNkMDBhZGVjZjFkNWY1NDQwYTEwZDZkMjY2ZTE2NGYzMDAwNDc3NDVhOWFlMTk0YzM4Nzk0ZjYxMDI1ZDUiLCJleHAiOjE2MzE3NjI2NDgsInNjb3BlIjoicmVnaXN0cmF0aW9uI2dsb2JhbCByZWdpc3RyYXRpb24jaG9zdCJ9._up0suoZrVH0n2MYRl4o55lAdAxcx3c93GVpS4-gvSg' \
          --data 'host[organization_id]=1' \
          --data 'host[location_id]=2' \
          --data 'host[lifecycle_environment_id]=2' \
          --data 'update_packages=false' \

}

    
    # rhn-client-tools conflicts with subscription-manager package
    # since rhn tools replaces subscription-manager, we need to explicitly
    # install subscription-manager after the rhn tools cleanup
    if [ x$ID = xol ]; then
      yum remove -y rhn-client-tools
      yum install -y --setopt=obsoletes=0 subscription-manager
    fi

    CONSUMER_RPM=$(mktemp --suffix .rpm)
    curl --silent --show-error --output $CONSUMER_RPM http://lab0l25.virtual.home.arpa/pub/katello-ca-consumer-latest.noarch.rpm

    # Workaround for systems with enabled FIPS,
    # where installation of RPM generated on RHEL7 cause 'no digest' error
    # See https://projects.theforeman.org/issues/32068
    if [ "$(cat /proc/sys/crypto/fips_enabled)" = "1" ]; then
        rpm -ivh --nodigest --nofiledigest $CONSUMER_RPM
    else
        yum localinstall $CONSUMER_RPM -y
    fi

    rm -f $CONSUMER_RPM

    subscription-manager register  \
        --org='Default_Organization' \
        --activationkey=CentOS8 || exit 1

    register_katello_host | bash
else
    register_host | bash
fi

The problem is this part of the script

“register_katello_host | bash”

The script is trying to pipe this to bash
echo “ERROR: There was an error rendering the Linux host_init_config default template: undefined method `full_path’ for nil:NilClass”;

So of course you actually get this:
bash: line 1: unexpected EOF while looking for matching ``’
bash: line 3: syntax error: unexpected end of file

Please keep in mind that this only happens for the first host that I am kickstarting
When the second host is kickstarted it does not encounter this same problem.

If I go into the the GUI and select the new host to look at the templates I see an error for every template:

For example at this link: https://lab0l25.virtual.home.arpa/unattended/finish?hostname=lab0l29.virtual.home.arpa

It will return:
There was an error rendering the Kickstart default finish template: undefined method `full_path’ for nil:NilClass

It’s trivial to reproduce here are the steps:

Build new CentOS 8 host / Disable SELINUX / Firewall wide open
Install foreman/katello
Sync CentOS 8 BaseOS/AppStream to a product
Create a content view
Create an LCE
Publish the Content View to the LCE
Create an Activation key
Add a subscription for the content view to the Activation Key
Create a new host using synced content to kickstart the host, use default templates
Login to new host ensure networking is up
Generate a registration script with Hosts > Register Host
Copy and Paste to registration script on the new host

If it helps this is the foreman-installer command I used

foreman-installer --scenario katello --foreman-proxy-tftp true --foreman-proxy-dhcp true --foreman-proxy-dhcp-nameservers 192.168.122.1

Expected outcome:

I expect the content host to complete the registration process without seeing bash errors.
When i review the templates for a host, I do not expect to see an error
If the first host I kickstart has this issue I would expect the second host to have the same problem.

Foreman and Proxy versions:
foreman-3.0.0-1.el8.noarch
foreman-proxy-3.0.0-1.el8.noarch
katello-4.2.0.rc1-1.el8.noarch

Foreman and Proxy plugin versions:
I haven’t installed any plugins

Distribution and version:
CentOS Linux release 8.4.2105

Other relevant data:

1 Like

@Mamba thanks for posting about this… Let’s see if we can figure out what’s going wrong.

1 Like

@jjeffers

I’ve done some testing here is what I’ve found.

After I sync the CentOS 8 Repo, this is the contents of my “Hosts > Operating Systems”

os-before

I now want to build a Content Host with that synced Content so I

“Hosts” > “Create Hosts” and fill out the form

While I’m waiting for the host to build I will ensure I can see the templates for the Host

review

Yes, the GUI returns the templates looking good so far.

OK, the host is done building now I want to register it as a content host

Here is the registration script

#!/bin/sh

# Rendered with following template parameters:
# User: [admin]
# Organization: [Default Organization]
# Location: [Default Location]
# Operating system: [CentOS_Linux 8]
# Update packages: [false]
# Lifecycle environment id: [2]
# Activation keys: [CentOS8]

if ! [ $(id -u) = 0 ]; then
    echo "Please run as root"
    exit 1
fi

if [ -f /etc/os-release ] ; then
  . /etc/os-release
fi

SSL_CA_CERT=$(mktemp)
cat << EOF > $SSL_CA_CERT
-----BEGIN CERTIFICATE-----
MIIHCDCCBPCgAwIBAgIUGEUFe2k+B4C64AjdigHqT6mBC7IwDQYJKoZIhvcNAQEL
BQAwgYQxCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4G
A1UEBwwHUmFsZWlnaDEQMA4GA1UECgwHS2F0ZWxsbzEUMBIGA1UECwwLU29tZU9y
Z1VuaXQxIjAgBgNVBAMMGWxhYjBsMjUudmlydHVhbC5ob21lLmFycGEwHhcNMjEw
OTE3MTMzNjM1WhcNMzgwMTE4MTMzNjM1WjCBhDELMAkGA1UEBhMCVVMxFzAVBgNV
BAgMDk5vcnRoIENhcm9saW5hMRAwDgYDVQQHDAdSYWxlaWdoMRAwDgYDVQQKDAdL
YXRlbGxvMRQwEgYDVQQLDAtTb21lT3JnVW5pdDEiMCAGA1UEAwwZbGFiMGwyNS52
aXJ0dWFsLmhvbWUuYXJwYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
ALeQ1N/cc7zOLo+nMB7oYtzBtfBX0Czf2DsqsayqEjrn259P42tBzKRaXIh16jsO
qsaCUMyR4j9PaJUM/V2voc0sczPpmHhXRfjNF42ilUEcOaeOlpJtIzJOiC+GTEz5
O3sh4Qg9dvA2CKiPnBO6nzgZizXu1MoxdsqgKUVU3pDS6b/HaOQykem5TZ0pUzjw
s9NzMXxauz/PkwfnyxyE3v58FjWaReYTWG2dDe7bAFf2QMP6qnA7FXzvH7BXxGr5
BMGYNwB7k4nBc1vnJzSWlcGbmRuXe1wvm+9nt6nNAI1RKPzyXR+LrUjRAMJ0pOqD
8rtRQzTFnKrFUnLlIY6HG4exs+vIkLdyt5n/F0PgvWIovqoQIbZQKha3xQFQHSXb
aFGPRatxuSYsG9PG3sDH1tKeAQOgAmxBas4PGp1APw450rRr5YPE6HqYqfqX2UDM
PvEwtkAUIHVR+Ns+O1yIoN7WaTPhCZMBK1R29/sgZDo/JBnTHX3IQZPTVMI6dvBA
KkN7WvQaKh7zzpVtdYmJ80iplIjx1AzvGs6bMqH5W+zLrCtnDRhwGkcKHop/vGO4
Mw+LpBVAUzeu6cEI09FFUEi3WPtpQrCigSHEH/MFf1mfPeFR86O+io6xMhFGB7CH
M8+pwkSneBRagm9S4AMECoFLlO9CkDWI9G9seFo99DohAgMBAAGjggFuMIIBajAM
BgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI
KwYBBQUHAwIwEQYJYIZIAYb4QgEBBAQDAgJEMDUGCWCGSAGG+EIBDQQoFiZLYXRl
bGxvIFNTTCBUb29sIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUtP6E
rnj12F97EfWEmlwzn+uZCGQwgcQGA1UdIwSBvDCBuYAUtP6Ernj12F97EfWEmlwz
n+uZCGShgYqkgYcwgYQxCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJv
bGluYTEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwHS2F0ZWxsbzEUMBIGA1UE
CwwLU29tZU9yZ1VuaXQxIjAgBgNVBAMMGWxhYjBsMjUudmlydHVhbC5ob21lLmFy
cGGCFBhFBXtpPgeAuuAI3YoB6k+pgQuyMA0GCSqGSIb3DQEBCwUAA4ICAQBH+2W4
gAQtEgsjsK2SbL7V51qaLZcfqRNgzpwv0sPFl18ieGN/NxRcJ0lhyGFq2dApTevu
y7i/2CIALxYXK4nlFjHZqr9gYXw4T1MBDKSS0kxG+pWqkcXeGJ/Z2YjoeeZ+yFSd
7DZtJbEymQ9ltDqMkJHHtv1pqsHHF/6Y6sc6YCcyS+9YxXXC77gEOgV+rJToHSHJ
eaJ6a+MAoT/uleh4CyyNvzdUdqejnl0tjpsAK3968Uo5YznFaeivV2jrX9a3iDmm
B+RSBV3RIirsSinuXG+0s8RLHrEqwXxvzysenV1AHq2fpbx4ebL3pc8NzRndMQDD
uAH5boMGzBC7Z5QPIHtWhmz87/mdRRteWOKqDtKCDomDYWIYB4swmcBcPm690iDI
YGmSd7FGjG+dnOAtZ1VqYlIaCn+B01E/WQ3vGly5LHC1WQGzb0MCDGLXZpRCryxf
Ncntq6Fwu1QfaDvuTY+HQbJTq3WzLbKHNcojPqjdpo/LstiFJBh6qLXA18kZR73B
vF7U+aaDuJjd5M+6GMA7DqFdtum5GU/iZvCRpBNiDTSdDCe5r8nF78PahxHJ4kl7
cm62EEFoJdTW4O4tYTfKCDOQLVXI7r7zlFB1CmoVu0ODvhtI2zYZd4c+b6D4C7yU
VwFi+zVpo7zqQVXHdxcLMSUEWdF0LLgD9yJ9tg==
-----END CERTIFICATE-----

EOF


register_host() {
  curl --silent --show-error --cacert $SSL_CA_CERT --request POST https://lab0l25.virtual.home.arpa:9090/register \
       -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJpYXQiOjE2MzE4ODg5MzcsImp0aSI6IjEwMTdhMTU1Mjg0NWIxOTNhODg3MjM3MjlkNzA0ZWNmZTRiMTRmYTlmODkyMDUzYWRiMDEyMjRlNjJjNDIwZjQiLCJleHAiOjE2MzE5MDMzMzcsInNjb3BlIjoicmVnaXN0cmF0aW9uI2dsb2JhbCByZWdpc3RyYXRpb24jaG9zdCJ9.9X5GVVAidFtsY7uJiij0e9chKEQssoe9rzWUgrKnzBo' \
       --data "host[name]=$(hostname --fqdn)" \
       --data "host[build]=false" \
       --data "host[managed]=false" \
       --data 'host[organization_id]=1' \
       --data 'host[location_id]=2' \
       --data 'host[operatingsystem_id]=2' \
       --data 'update_packages=false' \

}

echo "#"
echo "# Running registration"
echo "#"

if [ x$ID = xrhel ] || [ x$ID = xcentos ] || [ x$ID = xol ]; then
    register_katello_host(){
        UUID=$(subscription-manager identity | head -1 | awk '{print $3}')
        curl --silent --show-error --cacert $SSL_CA_CERT --request POST "https://lab0l25.virtual.home.arpa:9090/register" \
             --data "uuid=$UUID" \
             -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJpYXQiOjE2MzE4ODg5MzcsImp0aSI6IjEwMTdhMTU1Mjg0NWIxOTNhODg3MjM3MjlkNzA0ZWNmZTRiMTRmYTlmODkyMDUzYWRiMDEyMjRlNjJjNDIwZjQiLCJleHAiOjE2MzE5MDMzMzcsInNjb3BlIjoicmVnaXN0cmF0aW9uI2dsb2JhbCByZWdpc3RyYXRpb24jaG9zdCJ9.9X5GVVAidFtsY7uJiij0e9chKEQssoe9rzWUgrKnzBo' \
          --data 'host[organization_id]=1' \
          --data 'host[location_id]=2' \
          --data 'host[lifecycle_environment_id]=2' \
          --data 'update_packages=false' \

}

    
    # rhn-client-tools conflicts with subscription-manager package
    # since rhn tools replaces subscription-manager, we need to explicitly
    # install subscription-manager after the rhn tools cleanup
    if [ x$ID = xol ]; then
      yum remove -y rhn-client-tools
      yum install -y --setopt=obsoletes=0 subscription-manager
    fi

    CONSUMER_RPM=$(mktemp --suffix .rpm)
    curl --silent --show-error --output $CONSUMER_RPM http://lab0l25.virtual.home.arpa/pub/katello-ca-consumer-latest.noarch.rpm

    # Workaround for systems with enabled FIPS,
    # where installation of RPM generated on RHEL7 cause 'no digest' error
    # See https://projects.theforeman.org/issues/32068
    if [ "$(cat /proc/sys/crypto/fips_enabled)" = "1" ]; then
        rpm -ivh --nodigest --nofiledigest $CONSUMER_RPM
    else
        yum localinstall $CONSUMER_RPM -y
    fi

    rm -f $CONSUMER_RPM

    subscription-manager register  \
        --org='Default_Organization' \
        --activationkey=CentOS8 || exit 1

    register_katello_host | bash
else
    register_host | bash
fi

So because I’m troubleshooting I step through the code manually, it is precisely at this step when the problem happens.

    subscription-manager register  \
        --org='Default_Organization' \
        --activationkey=CentOS8 || exit 1

The output seems fine on the client side

The system has been registered with ID: 006a6038-5f97-44f1-99d6-d1253bd60fe3
The registered system name is: lab0l29.virtual.home.arpa
No products installed.

But if you go back to “Hosts” > “All Hosts” you will see 2 things have changed.

  1. The “Operating System” is no longer " CentOS_Linux 8", it is now “CentOS 8”
    Note: I’m not terribly bothered that it’s changed but it’s worth mentioning

  2. The Templates are no longer accessible
    review

You will get

There was an error rendering the Kickstart default finish template: undefined method `full_path' for nil:NilClass

Also, of note you can see now the new “CentOS 8” operating system in “Hosts” > “Operating System”
os-after

Ok so now back to the script on the client

The next command to run is this

register_katello_host | bash
[root@lab0l29 ~]# register_katello_host
echo "ERROR: There was an error rendering the Linux host_init_config default template: undefined method `full_path' for nil:NilClass";
exit 1

Hope this helps tracking down the issue

Alright so I’ve done some more testing and I know the reason why this is happening.

When you perform a repo sync from a CentOS 8 yum server.

Foreman will automatically create an “Operating System”

Foreman calls this “Operating System” “CentOS_Linux 8”

When a new host is created using this new “CentOS_Linux 8” operating system and then registered with
“subscription-manager register” foreman will create a new “Operating System” called “CentOS 8”.

Foreman will change the Operating System ascribed to the host being registered to “CentOS 8” from “CentOS_Linux 8”

For some reason, when this changing of “Operating System” happens and the “Operating System” it is changing to is being newly created, the templates for that host end up in a bad state and prevent further registration.

A workaround:

After you have synced the CentOS 8 operating and foreman creates “CentOS_Linux 8” just go into “Hosts” > “Operating Systems”, Select “CentOS_Linux 8” and change the Name field to say “CentOS” instead of “CentOS_Linux” and you will not have a problem when you build the first host.

1 Like