-
Notifications
You must be signed in to change notification settings - Fork 26
sys_use
The easiest way to use the playbooks is by cloning the GitHub project.
$ git clone https://github.com/OpenNebula/one-deploy.gitIf you look closely at the ansible.cfg file in the root of the one-deploy repository and the directory structure you'll notice:
[defaults]
collections_paths=./ansible_collections/$ stat ./ansible_collections/opennebula/deploy
File: ./ansible_collections/opennebula/deploy -> ../../
Size: 6 Blocks: 0 IO Block: 4096 symbolic linkYou can either use included Makefile or enter ansible-playbook commands directly.
To use this repo:
- Download requirements:
$ make requirementsOR
$ ansible-galaxy collection install -r requirements.yml-
Create your inventory file inside the
inventory/folder. -
Execute the provisioning:
$ make I=inventory/example.ymlOR
$ ansible-playbook -i inventory/example.yml opennebula.deploy.main- Execute provisioning for specific tags:
$ make I=inventory/example.yml T=bastion,preinstallOR
$ ansible-playbook -i inventory/example.yml opennebula.deploy.main -t bastion,preinstall- Proceed normally like with any other Ansible playbook. Thank you! 🤗
For more advance users, the playbooks are available as part of the Ansible Galaxy community site, just take a look at the documentation of each role in the OpenNebula collection to include them in your own playbooks.
To install the opennebula.deploy collection directly from Ansible Galaxy execute:
$ ansible-galaxy collection install --upgrade opennebula.deployTo deploy a full OpenNebula environment using playbooks downloaded together with the collection:
- Create your inventory folder:
$ mkdir ~/my-one/
$ cat > ~/my-one/example.yml <<'EOF'
---
all:
vars:
ansible_user: root
one_version: '6.6'
one_pass: opennebulapass
vn:
admin_net:
managed: true
template:
VN_MAD: bridge
PHYDEV: eth0
BRIDGE: br0
AR:
TYPE: IP4
IP: 172.20.0.100
SIZE: 48
NETWORK_ADDRESS: 172.20.0.0
NETWORK_MASK: 255.255.255.0
GATEWAY: 172.20.0.1
DNS: 1.1.1.1
frontend:
hosts:
f1: { ansible_host: 172.20.0.6 }
node:
hosts:
n1: { ansible_host: 172.20.0.7 }
n2: { ansible_host: 172.20.0.8 }
EOF
$ cat > ~/my-one/ansible.cfg <<'EOF'
[defaults]
inventory=./example.yml
gathering=explicit
host_key_checking=false
display_skipped_hosts=true
retry_files_enabled=false
any_errors_fatal=true
stdout_callback=yaml
timeout=30
[ssh_connection]
pipelining=true
ssh_args=-q -o ControlMaster=auto -o ControlPersist=60s
EOF- Execute the main playbook:
$ (cd ~/my-one/ && ansible-playbook -v opennebula.deploy.main)- You can also compose your own playbook or embed
opennenebula.deploy.*roles into some existing automation. To for example run only SSH key provisioning, execute:
$ cat > keys.yml <<'EOF'
---
- hosts: frontend:node
roles:
- role: opennebula.deploy.helper.keys
EOF
$ (cd ~/my-one/ && ansible-playbook -v keys.yml)| Tag | Description |
|---|---|
bastion |
Render local SSH jump-host configs |
datastore |
Manage datastores |
flow |
Manage the OneFlow service |
frontend |
Run all tasks needed for Front-end deployment |
gate |
Manage OneGate Server and Proxy services |
grafana |
Manage Grafana |
gui |
Manage Sunstone and FireEdge services |
keys |
Generate and provision SSH keys (password-less login) |
libvirt |
Apply various Libvirt-related fixes on OpenNebula Nodes |
network |
Manage networking |
node |
Run all tasks needed for Node deployment |
preinstall |
Download and install (only) all software packages |
prometheus |
Manage Prometheus Server and exporters |
- Requirements & Platform Notes
- Release Notes
- Using the playbooks
- Reference Architectures:
- Verifying the installation
- Advanced Configurations:
- Additional Options:
- Developer Information: