743b939640
The basic provisioning tools we had in the MNAIO could long be used on a set of physical machines however doing so required a healthy understanding of everything going on under the hood. This change extracts the PXE components out of our older MNAIO tooling and will allow operators to easily deploy operating systems on machines in the most compatible way possible. Change-Id: I2188f0f0de7f8be331a35b5f22cf5114ea9b6718 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
311 lines
8.3 KiB
YAML
311 lines
8.3 KiB
YAML
---
|
|
# Copyright 2017, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in witing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
- name: Run DRAC Config
|
|
hosts: pxe_servers
|
|
gather_facts: false
|
|
connection: local
|
|
tasks:
|
|
- set_fact:
|
|
racadm_path: "/opt/dell/srvadmin/sbin/racadm"
|
|
tags:
|
|
- always
|
|
|
|
- name: check for racadm
|
|
stat:
|
|
path: "{{ racadm_path }}"
|
|
register: racadm_command
|
|
tags:
|
|
- always
|
|
|
|
- name: check for racadm_command
|
|
fail:
|
|
msg: "racadm command is not found."
|
|
when:
|
|
- not racadm_command.stat.exists
|
|
tags:
|
|
- always
|
|
|
|
- set_fact:
|
|
racadm: "{{ racadm_path }} -r {{ server_obm_ip }} -u root -p calvin"
|
|
tags:
|
|
- always
|
|
|
|
- name: set cfgServerBootOnce
|
|
command: "{{ racadm }} config -g cfgServerInfo -o cfgServerBootOnce 0"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgServerFirstBootDevice
|
|
|
|
- name: set cfgServerFirstBootDevice
|
|
command: "{{ racadm }} config -g cfgServerInfo -o cfgServerFirstBootDevice HDD"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgServerFirstBootDevice
|
|
|
|
- name: set cfgServerBootOnce
|
|
command: "{{ racadm }} config -g cfgServerInfo -o cfgServerBootOnce 1"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgServerBootOnce
|
|
|
|
- name: set cfgServerFirstBootDevice
|
|
command: "{{ racadm }} config -g cfgServerInfo -o cfgServerFirstBootDevice PXE"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgServerBootOnce
|
|
|
|
- name: set cfgNicEnable
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicEnable 1"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicEnable
|
|
|
|
- name: set cfgNicIPv4Enable
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicIPv4Enable 1"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicIPv4Enable
|
|
|
|
- name: set cfgNicUseDhcp
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicUseDhcp 0"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicUseDhcp
|
|
|
|
- name: set cfgNicVLanEnable
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicVLanEnable 0"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicVLanEnable
|
|
|
|
- name: set cfgNicVLanID
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicVLanID 1"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicVLanID
|
|
|
|
- name: set cfgNicVLanPriority
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicVLanPriority 0"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicVLanPriority
|
|
|
|
- name: set cfgNicSelection
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicSelection 2"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicSelection
|
|
|
|
- name: set cfgDNSServersFromDHCP
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgDNSServersFromDHCP 0"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgDNSServersFromDHCP
|
|
|
|
- name: set cfgDNSRacName
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgDNSRacName {{ server_hostname }}"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgDNSRacName
|
|
|
|
- name: set cfgNicIpAddress
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicIpAddress {{ server_obm_ip }}"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicIpAddress
|
|
|
|
- name: set cfgDNSServer1
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgDNSServer1 {{ server_gateway }}"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgDNSServer1
|
|
|
|
- name: set cfgDNSServer2
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgDNSServer2 {{ server_dns }}"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgDNSServer2
|
|
|
|
- name: set cfgNicNetmask
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicNetmask {{ server_netmask }}"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicNetmask
|
|
|
|
- name: set cfgNicGateway
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgNicGateway {{ server_gateway }}"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgNicGateway
|
|
|
|
- name: set cfgDNSDomainName
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgDNSDomainName {{ server_domain_name }}"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgDNSDomainName
|
|
|
|
- name: set cfgDNSDomainNameFromDHCP
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgDNSDomainNameFromDHCP 0"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgDNSDomainNameFromDHCP
|
|
|
|
- name: set cfgDNSRegisterRac
|
|
command: "{{ racadm }} config -g cfgLanNetworking -o cfgDNSRegisterRac 0"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgDNSRegisterRac
|
|
|
|
- name: set cfgIpmiLanEnable
|
|
command: "{{ racadm }} config -g cfgIpmiLan -o cfgIpmiLanEnable 1"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgIpmiLanEnable
|
|
|
|
- name: set cfgIpmiLanPrivilegeLimit
|
|
command: "{{ racadm }} config -g cfgIpmiLan -o cfgIpmiLanPrivilegeLimit 4"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgIpmiLanPrivilegeLimit
|
|
|
|
- name: set cfgIpmiLanAlertEnable
|
|
command: "{{ racadm }} config -g cfgIpmiLan -o cfgIpmiLanAlertEnable 0"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgIpmiLanAlertEnable
|
|
|
|
- name: set cfgIpmiEncryptionKey
|
|
command: "{{ racadm }} config -g cfgIpmiLan -o cfgIpmiEncryptionKey 0000000000000000000000000000000000000000"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgIpmiEncryptionKey
|
|
|
|
- name: set cfgIpmiPetCommunityName
|
|
command: "{{ racadm }} config -g cfgIpmiLan -o cfgIpmiPetCommunityName public"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- cfgIpmiPetCommunityName
|
|
|
|
- name: run sslresetcfg
|
|
command: "{{ racadm }} sslresetcfg"
|
|
register: command
|
|
failed_when: not command.rc in [0, 2]
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
tags:
|
|
- sslresetcfg
|
|
|
|
- name: run serveraction powercycle
|
|
command: "{{ racadm }} serveraction powercycle"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
when:
|
|
- not inventory_hostname in groups['pxe_hosts']
|
|
tags:
|
|
- powercycle
|
|
|
|
- name: run racreset
|
|
command: "{{ racadm }} racreset"
|
|
register: command
|
|
until: command is success
|
|
retries: 2
|
|
delay: 2
|
|
when:
|
|
- not inventory_hostname in groups['pxe_hosts']
|
|
tags:
|
|
- racreset
|