This guide automates Tsuru installation using native packages on Linux hosts without container orchestration. Suitable for small deployments and development environments.
- name: Deploy Tsuru (Native)
hosts: tsuru_server
become: true
vars:
tsuru_version: "1.29.6"
mongodb_host: "localhost"
mongodb_port: "27017"
tsuru_admin_email: "admin@example.com"
tasks:
- name: Install dependencies
ansible.builtin.package:
name:
- curl
- gnupg
- apt-transport-https
state: present
- name: Add Tsuru repository key (Debian/Ubuntu)
ansible.builtin.apt_key:
url: https://packagecloud.io/tsuru/tsuru/gpgkey
state: present
when: ansible_os_family == "Debian"
- name: Add Tsuru repository (Debian/Ubuntu)
ansible.builtin.apt_repository:
repo: "deb https://packagecloud.io/tsuru/tsuru/{{ ansible_distribution_release }}/ main"
state: present
when: ansible_os_family == "Debian"
- name: Install MongoDB
ansible.builtin.package:
name: mongodb-org
state: present
- name: Start and enable MongoDB
ansible.builtin.systemd:
name: mongod
enabled: true
state: started
- name: Install Tsuru server package
ansible.builtin.package:
name: tsuru-server
state: present
- name: Create Tsuru configuration directory
ansible.builtin.file:
path: /etc/tsuru
state: directory
mode: "0755"
- name: Configure Tsuru
ansible.builtin.template:
src: tsuru.conf.j2
dest: /etc/tsuru/tsuru.conf
mode: "0644"
vars:
mongo_host: "{{ mongodb_host }}"
mongo_port: "{{ mongodb_port }}"
admin_email: "{{ tsuru_admin_email }}"
- name: Initialize Tsuru database
ansible.builtin.command: tsuru-migrate
environment:
TSURU_CONFIG: /etc/tsuru/tsuru.conf
- name: Create initial admin user
ansible.builtin.command: >
tsuru-admin create-user
--email {{ tsuru_admin_email }}
--password-change
environment:
TSURU_CONFIG: /etc/tsuru/tsuru.conf
- name: Start Tsuru API service
ansible.builtin.systemd:
name: tsuru-api
enabled: true
state: started
- name: Start Tsuru worker service
ansible.builtin.systemd:
name: tsuru-worker
enabled: true
state: started
ansible-playbook -i inventory.ini tsuru-native.yml
# Verify Tsuru API is running
curl http://localhost:8080/info
# Login as admin
tsuru login admin@example.com
# List pools
tsuru pool-list