AI install server using a https IPS repo
Last time we created a local IPS repository (see https://crc32c.blogspot.de/2017/04/https-ips-repository-using-pkgdepotd.html) and added the latest SRU to it (see https://crc32c.blogspot.de/2017/04/how-to-add-sru-to-local-ips-repository.html).
Now it's time to create an AI install server, add some customizations and netboot/netinstall our first server.
# zfs create tank/install/auto_install # zfs create tank/install/webserver_files # pkg install --no-backup-be install/installadm # cp /etc/certs/CA/UNIX_Dep_CA.pem /install/webserver_files/ # chown webservd:webservd /install/webserver_files/UNIX_Dep_CA.pem # svccfg -s svc:/system/install/server:default svc:/system/install/server:default> setprop all_services/default_imagepath_basedir = /install/auto_install svc:/system/install/server:default> setprop all_services/enable_webui = false svc:/system/install/server:default> setprop all_services/manage_dhcp = false svc:/system/install/server:default> setprop all_services/webserver_files_dir = /install/webserver_files svc:/system/install/server:default> refresh svc:/system/install/server:default> ^D # svcadm enable svc:/system/install/server:default # installadm create-service -n solaris11_3-sparc -p solaris=https://pkg.mycompany.com/solaris/ OK to use subdir of /install/auto_install to store image? [y|N]: y ... 100% : Created Service: 'solaris11_3-sparc' ...
Good, now let's edit/create the manifest and system configuration profile.
The AI_HOSTNAME, AI_IPV4, etc. variables are resolved using data supplied by our dhcpd server we'll setup in a few.
# installadm export -n solaris11_3-sparc -m orig_default -o orig_default
# cat orig_default
...
<source>
<publisher name="solaris">
<origin name="https://pkg.mycompany.com/solaris/"/>
<credentials>
<ca_cert src="http://pkg.mycompany.com:5555/files/UNIX_Dep_CA.pem"/>
</credentials>
</publisher>
</source>
...
# installadm update-manifest -n solaris11_3-sparc -f ./orig_default
Changed Manifest: 'orig_default'
# sysconfig create-profile -o sc
# cat sc/sc_profile.xml
...
<service version="1" type="service" name="system/identity">
<instance enabled="true" name="node">
<property_group type="application" name="config">
<propval type="astring" name="nodename" value="{{AI_HOSTNAME}}"/>
</property_group>
</instance>
</service>
<service version="1" type="service" name="network/install">
<instance enabled="true" name="default">
<property_group type="application" name="install_ipv4_interface">
<propval type="net_address_v4" name="static_address" value="{{AI_IPV4}}/{{AI_IPV4_PREFIXLEN}}"/>
<propval type="astring" name="name" value="{{AI_NETLINK_VANITY}}/v4"/>
<propval type="astring" name="address_type" value="static"/>
<propval type="net_address_v4" name="default_route" value="{{AI_ROUTER}}"/>
</property_group>
</instance>
</service>
...
<service version="1" type="service" name="system/ocm">
<instance enabled="false" name="default">
<property_group type="application" name="reg">
<propval type="astring" name="opt_out" value="true"/>
</property_group>
</instance>
</service>
...
# installadm create-profile -n solaris11_3-sparc -f sc/sc_profile.xml -p custom
Almost done with the AI part. Let's create our first client.
# installadm create-client -e 00:11:22:33:44:55 -n solaris11_3-sparc
And that's it. Now we need an DHCP server to assign hostnames, DNS server, IP addresses, etc. for netbooting.
# cat << EOF > /etc/inet/dhcpd4.conf
authoritative;
log-facility local7;
option domain-name "mycompany.com";
option domain-name-servers 10.74.0.53, 10.74.5.3, 10.74.53.53;
option domain-search "mycompany.com", "lab.mycompany.com";
deny unknown-clients;
class "SPARC" {
match if substring (option vendor-class-identifier, 0, 5) = "SUNW.";
filename "http://pkg.mycompany.com:5555/cgi-bin/wanboot-cgi";
}
subnet 10.79.85.0 netmask 255.255.255.128 {
option routers 10.79.85.1;
option broadcast-address 10.79.85.127;
option ntp-servers 10.79.85.1;
next-server pkg.mycompany.com;
use-host-decl-names on;
}
host ldg1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 10.79.85.101;
}
EOF
# chgrp sys /etc/inet/dhcpd4.conf
# /usr/lib/inet/dhcpd -t -cf /etc/inet/dhcpd4.conf
# printf "local7.debug\t\t\t\t\t/var/log/dhcpd.log\n" >> /etc/syslog.conf
# touch /var/log/dhcpd.log
# chgrp sys /var/log/dhcpd.log
# svcadm restart svc:/system/system-log:default
# echo "/var/log/dhcpd.log -C 4 -a '/usr/sbin/svccfg -s svc:/system/system-log:default refresh'" > /etc/logadm.d/dhcpd.logadm.conf
# chmod 444 /etc/logadm.d/dhcpd.logadm.conf
# chgrp sys /etc/logadm.d/dhcpd.logadm.conf
# svcadm refresh svc:/system/logadm-upgrade:default
# svcadm enable svc:/network/dhcp/server:ipv4
Time to install our first client.
{0} ok boot net:dhcp - install
...
13:13:33 Saving credential file UNIX_Dep_CA.pem
13:13:34 Creating the CA certificate symbolic link(s)
...
13:14:23 Installing packages from:
13:14:23 solaris
13:14:23 origin: https://pkg.mycompany.com/solaris/
...
Automated Installation finished successfully
Good bye text-install ISOs...
No comments:
Post a Comment