Esempio n. 1
0
function afi_part_get_installdisks_space()
{
    $host_conf = afi_get_host_config(afi_get_const_array_key('AFI_INI_SETTINGS', 'afi_conf_dir'), afi_get_client_profile_name());
    return implode(" ", $host_conf['install_disks']);
}
Esempio n. 2
0
<?php

require_once './inc/conf.php';
#specific require_once's
require_once './lib/libks.php';
require_once './lib/libpart.php';
$host_conf = afi_get_host_config(afi_get_const_array_key('AFI_INI_SETTINGS', 'afi_conf_dir'), afi_get_client_profile_name());
$afi_pre_dir = "/tmp/afi_pre";
$afi_post_dir = "/tmp/afi_post";
print "# Partitioning Information and bootloader\n";
afi_part_bootloader();
print "\n";
afi_part_main();
print "\n";
?>

# Perform kickstart installation in text mode
text
install
skipx

# Agree to EULA
#eula --agreed

# enable debug logging
logging --level=debug

# reboot after installation
reboot

<?php 
Esempio n. 3
0
function afi_get_unset_url_command()
{
    $client_profile_name = afi_get_client_profile_name();
    afi_debug_var("client_profile_name", $client_profile_name, 6);
    return "curl -s -o - " . afi_get_base_url_afi(TRUE) . "/unset_host_install.php?afi_client_profile_name=" . $client_profile_name;
}
Esempio n. 4
0
<?php

require_once './inc/conf.php';
require_once './lib/libipxe.php';
print "#!ipxe\n";
#if (afi_get_const_array_key('AFI_CLIENT_CONF','install') == 1) {
if (afi_get_host_install()) {
    $afi_client_profile_name = afi_get_client_profile_name();
    $afi_ipxe_kernel_string = create_ipxe_kernel_string();
    $afi_ipxe_initrd_string = create_ipxe_initrd_string();
    #debug output for iPXE
    print "echo 'Client profile name: \"" . $afi_client_profile_name . "\"'\n";
    print "echo 'kernel " . $afi_ipxe_kernel_string . "'\n";
    print "echo 'initrd " . $afi_ipxe_initrd_string . "'\n";
    #kernel + options and initrd
    print "kernel " . $afi_ipxe_kernel_string . "\n";
    print "initrd " . $afi_ipxe_initrd_string . "\n";
    #boot kernel
    print "boot\n";
} else {
    #take next device in BIOS boot order
    print "exit\n";
}
Esempio n. 5
0
function afi_unset_host_install()
{
    $afi_conf_dir = afi_get_const_array_key('AFI_INI_SETTINGS', 'afi_conf_dir');
    $hostname = afi_get_client_profile_name();
    $afi_environment = afi_get_const_array_key('AFI_CLIENT_CONF', 'environment');
    $installsymlink = $afi_conf_dir . "/hosts/" . $afi_environment . "/install/" . $hostname . ".conf";
    if (file_exists($installsymlink)) {
        if (is_link($installsymlink)) {
            unlink($installsymlink);
        }
    }
    $afi_unset_url = afi_get_base_url_afi(TRUE) . "/unset_host_install.php";
}
Esempio n. 6
0
function create_ipxe_kernel_string()
{
    $afi_rhel_clones_regex = "/centos|rhel|oracle|scientific|puias|springdale|rosa|stella/";
    # client conf opts
    $afi_dist = afi_get_const_array_key('AFI_CLIENT_CONF', 'dist');
    $afi_distver = afi_get_const_array_key('AFI_CLIENT_CONF', 'distver');
    $afi_distvershort = afi_get_const_array_key('AFI_CLIENT_CONF', 'distvershort');
    $afi_kernel_conf_dist = afi_get_kernel_conf_dist();
    # create kernel url
    $afi_kernel_string = $afi_kernel_conf_dist['kernel'];
    # ensure that installer uses same interface than iPXE
    $afi_kernel_string = $afi_kernel_string . " BOOTIF=01-\${netX/mac}";
    # dist specific extra kernel parameters
    # no good magic FIXME
    $afi_dist_kernel_opts = "";
    if (preg_match($afi_rhel_clones_regex, $afi_dist) && preg_match("/^6\\.[0-9]+\$/", $afi_distver)) {
        $afi_dist_kernel_opts = "ramdisk_size=100000 ksdevice=bootif";
    }
    #  # FIXME do not use fai - rather use preseed
    #  if ( (preg_match("/ubuntu|debian/", $afi_dist)) ) {
    #    $afi_dist_kernel_opts ="boot=live fetch=".afi_get_base_url_afi(TRUE)."/faiserver/UBUNTUPRECISE/base.squashfs ip=dhcp FAI_CONFIG_SRC=git+https://gitserver/fai.git FAI_ACTION=install FAI_FLAGS=verbose,sshd";
    #  }
    $afi_kernel_string = $afi_kernel_string . " " . $afi_dist_kernel_opts;
    # define provisioning file
    switch (true) {
        case preg_match($afi_rhel_clones_regex, $afi_dist):
            $afi_provisioning_file_post = "rhel." . $afi_distvershort . ".php";
            break;
        default:
            $afi_provisioning_file_post = $afi_dist . "." . $afi_distvershort . ".php";
            break;
    }
    afi_debug_var("{$afi_provisioning_file_post}", $afi_provisioning_file_post, 6);
    # provisioning parameter for boot
    switch (true) {
        case preg_match($afi_rhel_clones_regex, $afi_dist):
            $afi_provisioning_file_string = "ks=" . afi_get_base_url_afi(TRUE) . "/ks.cfg." . $afi_provisioning_file_post;
            break;
        case preg_match("/fedora/", $afi_dist):
            $afi_provisioning_file_string = "ks=" . afi_get_base_url_afi(TRUE) . "/ks.cfg." . $afi_provisioning_file_post;
            break;
        default:
            $afi_provisioning_file_string = "";
            break;
    }
    $client_profile_name = afi_get_client_profile_name();
    afi_debug_var("client_profile_name", $client_profile_name, 6);
    $afi_provisioning_file_string = $afi_provisioning_file_string . "?afi_client_profile_name=" . $client_profile_name;
    afi_debug_var("afi_provisioning_file_string", $afi_provisioning_file_string, 6);
    $afi_kernel_string = $afi_kernel_string . " " . $afi_provisioning_file_string;
    if (afi_get_const_array_key('AFI_CLIENT_CONF', 'instsshd') == 1) {
        if (preg_match($afi_rhel_clones_regex, $afi_dist) && preg_match("/^6\\.[0-9]+\$/", $afi_distver)) {
            $instsshd_string = "sshd=1";
        } else {
            $instsshd_string = "inst.sshd";
        }
        $afi_kernel_string = $afi_kernel_string . " " . $instsshd_string;
    }
    # ssl kernel parameter
    if (afi_get_const_array_key('AFI_CLIENT_CONF', 'noverifyssl') == 1) {
        #FIXME replace by call for noverifysslstring (distro dependent)
        $afi_kernel_string = $afi_kernel_string . " noverifyssl";
    }
    # serial console kernel parameter
    if (afi_get_const_array_key('AFI_CLIENT_CONF', 'use_serial_console') == 1) {
        $serial_console_port_linux_kernel = afi_get_const_array_key('AFI_CLIENT_CONF', 'serial_console_port') - 1;
        $serial_console_port_speed = afi_get_const_array_key('AFI_CLIENT_CONF', 'serial_console_port_speed');
        $serial_console_string_linux_kernel = "console=tty0 console=ttyS" . $serial_console_port_linux_kernel . "," . $serial_console_port_speed . "n8";
        # no good magic FIXME
        if (preg_match($afi_rhel_clones_regex, $afi_dist) && preg_match("/^6\\.[0-9]+\$/", $afi_distver)) {
            $serial_console_string_linux_kernel = "serial " . $serial_console_string_linux_kernel;
        }
        $afi_kernel_string = $afi_kernel_string . " " . $serial_console_string_linux_kernel;
    }
    # create kernel parameter strings from host conf settings
    if (afi_get_const_array_key('AFI_CLIENT_CONF', 'ipv6disable') == 1) {
        #FIXME replace by call for ipv6disable-string (distro dependent)
        $afi_kernel_string = $afi_kernel_string . " ipv6.disable=1";
    }
    # disable consistent device naming ?
    if (afi_get_const_array_key('AFI_CLIENT_CONF', 'disableconsistennetworkdevicenaming') == 1) {
        #FIXME replace by call for disableconsistennetworkdevicenaming-string (distro dependent)
        $afi_kernel_string = $afi_kernel_string . " biosdevname=0 net.ifnames=0";
    }
    #special kernel boot options
    $afi_kernel_string = $afi_kernel_string . " " . afi_get_const_array_key('AFI_CLIENT_CONF', 'kernelbootoptions');
    return $afi_kernel_string;
}
Esempio n. 7
0
<?php

#### require_once libraries ####
require_once './lib/libdebug.php';
require_once './lib/libconf.php';
#### process ini file ####
$afi_ini = parse_ini_file("./afi.ini");
afi_set_const_array("AFI_INI_SETTINGS", parse_ini_file("./afi.ini"));
#### host config ####
#create host config
afi_set_const_array('AFI_CLIENT_CONF', afi_get_host_config(afi_get_const_array_key('AFI_INI_SETTINGS', 'afi_conf_dir'), afi_get_client_profile_name()));
# check if host config worked
if (!afi_get_const_array_key('AFI_CLIENT_CONF', 'environment') || afi_get_const_array_key('AFI_CLIENT_CONF', 'environment') == "") {
    print "error loading host_conf\n";
    exit(1);
}