This directory contains Ansible playbooks for deploying OptiReduce and its dependencies. For detailed information, visit our official documentation.
- π₯ Download
- π Prerequisites
- π Directory Structure
- βοΈ Configuration
- π Deployment Options
- 𧩠Available Components
- π Environment Variables
β οΈ Troubleshooting- π Additional Resources
- π Support
- π License
Clone the Ansible repository:
git clone https://github.com/OptiReduce/ansible.git
cd ansible
The playbooks automate the deployment of all OptiReduce components.
Ubuntu/Debian:
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
RHEL/CentOS:
sudo yum install epel-release
sudo yum install ansible
Verify installation:
ansible --version
#!/bin/bash
sudo apt update && sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh --no-pager
Usage:
chmod +x install_ssh.sh
./install_ssh.sh
#!/bin/bash
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <target_username> <target_host>"
exit 1
fi
TARGET_USER="$1"
TARGET_HOST="$2"
SSH_KEY="$HOME/.ssh/id_rsa"
[ ! -f "$SSH_KEY" ] && ssh-keygen -t rsa -b 4096 -N "" -f "$SSH_KEY"
ssh-copy-id "$TARGET_USER@$TARGET_HOST"
ssh -o BatchMode=yes "$TARGET_USER@$TARGET_HOST" "echo 'SSH connection successful on $(hostname)!'"
Steps:
- Save as
ssh_setup.sh
and make it executable:chmod +x ssh_setup.sh
- Run with target credentials:
./ssh_setup.sh user 192.168.1.10
optireduce/
βββ ansible.cfg # Ansible configuration
βββ inventory/
β βββ hosts # Target machine definitions
βββ group_vars/
β βββ all.yml # Global variables
βββ optireduce_deploy.yml # Main playbook
βββ Makefile # Deployment shortcuts
βββ roles/ # Component roles
βββ cuda/ # CUDA 11.7 setup
βββ mellanox/ # Mellanox drivers
βββ anaconda/ # Python environment
βββ optireduce/ # Core OptiReduce
βββ benchmark/ # Benchmark tools
[gpu_nodes]
node1 ansible_host=192.168.1.101 ansible_user=test
node2 ansible_host=192.168.1.102 ansible_user=test
cuda_version: "11.7.0-1"
nvidia_version: "515"
cudnn_version: "8.5.0.96-1+cuda11.7"
python_version: "3.9.19"
dpdk_version: "v20.11"
Command | Description |
---|---|
make optireduce-full |
Full installation |
make cuda-only |
Install CUDA only |
make benchmark-only |
Install benchmarks |
make check |
Validate configuration |
Custom Installation:
make deploy INSTALL_CUDA=true INSTALL_BENCHMARK=true
- CUDA 11.7 with cuDNN 8.5
- Mellanox OFED Drivers
- Anaconda (Python 3.9.19)
- DPDK v20.11
- OptiReduce Core
- Benchmarking Tools
# Toggle components during deployment
INSTALL_CUDA=true/false
INSTALL_MELLANOX=true/false
INSTALL_ANACONDA=true/false
INSTALL_OPTIREDUCE=true/false
INSTALL_BENCHMARK=true/false
Issue | Solution |
---|---|
SSH Connection | Verify keys and network connectivity |
CUDA Failures | Check NVIDIA repo access and space |
OFED Errors | Confirm kernel compatibility |
- OptiReduce Documentation π
- DPDK v20.11 Docs π
- CUDA Toolkit Docs π§
- Mellanox OFED Docs π οΈ
- Check the Troubleshooting section above.
- Review Ansible logs at
/var/log/ansible.log
. - Open an issue in the GitHub repository.
This deployment code is part of the OptiReduce project. Refer to the project page for licensing details.
### Key Enhancements:
1. **Badges**: Added Ansible, CUDA, and License badges for quick visual cues.
2. **Emojis**: Used emojis in headers (e.g., π₯, π, βοΈ) to improve scannability.
3. **Syntax Highlighting**: All code blocks tagged with `bash`, `yaml`, `ini`, etc., for proper GitHub rendering.
4. **Tables**: Structured deployment options and troubleshooting as tables.
5. **Directory Structure**:```markdown Added comments to explain each file/folder.
6. **Consistent Formatting**: Separated sections with `---` lines and used bold text for emphasis.
7. **Links**: Hyperlinked documentation resources with emojis for clarity.