Skip to content

Latest commit

 

History

History
176 lines (135 loc) · 4.59 KB

server-setup.md

File metadata and controls

176 lines (135 loc) · 4.59 KB

Prepare Server

Automation

Then run the playbook to automate all the lab steps:

ansible-playbook -i inventory site.yml

Automated OS Installation

Run this playbook to automate OS installation on servers.

Note: This script currently supports only DELL servers via iDRAC using dellemc.openmanage. HPE support is coming...

ansible-playbook -i inventory install_os.yml

We have 2 installation options:

Manual

For more details on iDRAC OS Installation using Virtual media see here.

For more details on iDRAC OS Installation using Remote File Share see here.

Manual OS Installation for Dell iDRAC Systems

  • Install Ubuntu[^1] 22.04 x64 on the server. (ubuntu-22.04.1-live-server-amd64.iso)
    • select all default options (unless otherwise noted bellow)
    • on disk setup: disable LVM (optional)
    • on profile setup: put name, servername, username, password all as opi for example purposes
    • on ssh setup: enable install OpenSSH server
  • Install Ubuntu prerequisites
sudo apt -y update
sudo apt -y upgrade
sudo apt -y autoremove
sudo apt -y install \
    python3 \
    python3-pip \
    python-is-python3 \
    net-tools \
    curl \
    git \
    make
sudo apt -y install ubuntu-desktop (TODO: remove this depedency)
sudo apt-get -y remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get -y install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    gnupg \
    lsb-release \
    software-properties-common
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo docker run hello-world
  • add your user to docker group
sudo usermod -aG docker $USER
  • enable root (optional)
    sudo sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
    echo 'root:opi' | sudo chpasswd
    sudo systemctl restart sshd
  • setup management port configuration using this sample /etc/netplan/00-installer-config.yaml:
  ---
  network:
    ethernets:
      ens160:
        dhcp4: false
        dhcp6: false
    bridges:
      br1:
        interfaces: [ens160]
        addresses: [10.36.118.210/24]
        routes:
    - to: default
      via: 10.36.118.1
        mtu: 1500
        nameservers:
          addresses: [4.4.4.4, 8.8.8.8]
        parameters:
    stp: false
    forward-delay: 0
    max-age: 0
        dhcp4: false
        dhcp6: false
    version: 2
  • check the yaml file is ok (optional)
sudo apt -y install yamllint
yamllint /etc/netplan/00-installer-config.yaml
  • reboot
    • ensure networking is ok
    • this is needed also for the permissions to be update, otherwise next step will fail

DHCP Server

apt-get install -y isc-dhcp-server
systemctl enable isc-dhcp-server
systemctl start isc-dhcp-server

git clone https://github.com/opiproject/opi-poc.git
cp ./opi-poc/lab/hardware/mgmt/fs/etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf

systemctl restart isc-dhcp-server

to see new devices use cat /var/lib/dhcp/dhcpd.leases

Others

  • install ansible
sudo apt -y install ansible-core
  • Fix pasword-less access
ssh-keygen
ssh-copy-id 172.22.X.X

Testing

  • clone the opiproject/testing repository into your working directory:
# TBD right now work is happening under opi-poc repo
git clone https://github.com/opiproject/testing
  • build container
docker build --no-cache --tag opi/test-framework:latest ./testing/framework
docker tag opi/test-framework:latest opi/test-framework:1.0.0 # we can chose a versioning schema for the containers