initial role commit
This commit is contained in:
commit
2200d6f9c7
25
.gitignore
vendored
Normal file
25
.gitignore
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# eclipse
|
||||||
|
bin
|
||||||
|
*.launch
|
||||||
|
.settings
|
||||||
|
.metadata
|
||||||
|
.classpath
|
||||||
|
.project
|
||||||
|
|
||||||
|
# idea
|
||||||
|
out
|
||||||
|
*.ipr
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# gradle
|
||||||
|
build
|
||||||
|
.gradle
|
||||||
|
|
||||||
|
# other
|
||||||
|
eclipse
|
||||||
|
run
|
||||||
|
|
||||||
|
# Files from Forge MDK
|
||||||
|
forge*changelog.txt
|
20
LICENSE
Normal file
20
LICENSE
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2024 Shane Wadleigh
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
README.md
Normal file
21
README.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# ansible-roles-so
|
||||||
|
|
||||||
|
A simple role to assist with the initial setup of stack orchestrator
|
||||||
|
|
||||||
|
- https://github.com/cerc-io/stack-orchestrator/
|
||||||
|
|
||||||
|
## Task Configuration
|
||||||
|
|
||||||
|
```
|
||||||
|
- name: Setup stack orchestrator
|
||||||
|
hosts: somehost
|
||||||
|
become: true
|
||||||
|
roles:
|
||||||
|
- role: so
|
||||||
|
```
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
```
|
||||||
|
ansible-playbook -i hosts site.yml --tags=so --limit=somehost
|
||||||
|
```
|
15
defaults/main.yml
Normal file
15
defaults/main.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
so_user_add: false
|
||||||
|
so_user: so
|
||||||
|
so_home: "/home/{{ so_user }}"
|
||||||
|
|
||||||
|
so_repo_checkout: true
|
||||||
|
so_repo_update: true
|
||||||
|
so_repo_dev_setup: false
|
||||||
|
so_repo_url: git@git.vdb.to:cerc-io/stack-orchestrator.git
|
||||||
|
so_repo_branch: main
|
||||||
|
so_repo_path: "{{ so_home }}"
|
||||||
|
|
||||||
|
so_bin_get: true
|
||||||
|
so_bin_path: /usr/local/bin
|
||||||
|
so_bin_url: https://git.vdb.to/cerc-io/stack-orchestrator/releases/download/latest/laconic-so
|
38
meta/main.yml
Normal file
38
meta/main.yml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
dependencies: []
|
||||||
|
|
||||||
|
galaxy_info:
|
||||||
|
role_name: so
|
||||||
|
author: srw
|
||||||
|
description: An Ansible role for configuring https://github.com/cerc-io/stack-orchestrator/
|
||||||
|
company: "NMD, LLC"
|
||||||
|
license: "license (BSD, MIT)"
|
||||||
|
min_ansible_version: "2.10"
|
||||||
|
platforms:
|
||||||
|
- name: Fedora
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
|
- name: Debian
|
||||||
|
versions:
|
||||||
|
- buster
|
||||||
|
- bullseye
|
||||||
|
- bookworm
|
||||||
|
- name: Ubuntu
|
||||||
|
versions:
|
||||||
|
- bionic
|
||||||
|
- focal
|
||||||
|
- jammy
|
||||||
|
- name: Alpine
|
||||||
|
version:
|
||||||
|
- all
|
||||||
|
- name: ArchLinux
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
|
galaxy_tags:
|
||||||
|
- server
|
||||||
|
- system
|
||||||
|
- containers
|
||||||
|
- docker
|
||||||
|
- orchestration
|
||||||
|
- compose
|
||||||
|
- laconic
|
92
tasks/main.yml
Normal file
92
tasks/main.yml
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
---
|
||||||
|
# currently builtin user creation does not place ssh keys, this could go into common
|
||||||
|
- name: Setup SO user
|
||||||
|
tags: so
|
||||||
|
block:
|
||||||
|
|
||||||
|
- name: Add so user
|
||||||
|
ansible.builtin.user:
|
||||||
|
name: "{{ so_user }}"
|
||||||
|
home: "{{ so_home }}"
|
||||||
|
uid: "{{ so_uid | default(omit) }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
#- name: Set authorized key taken from file
|
||||||
|
# ansible.posix.authorized_key:
|
||||||
|
# user: "{{ so_user }}"
|
||||||
|
# state: present
|
||||||
|
# key: "{{ lookup('file', {{ so_user_keys }}) }}"
|
||||||
|
|
||||||
|
when:
|
||||||
|
- so_user_add == true
|
||||||
|
|
||||||
|
|
||||||
|
- name: Install Latest Stack Orchestrator
|
||||||
|
tags: so
|
||||||
|
block:
|
||||||
|
|
||||||
|
- name: Check so paths
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ so_user }}"
|
||||||
|
group: "{{ so_user }}"
|
||||||
|
mode: 0755
|
||||||
|
with_items:
|
||||||
|
- "{{ so_bin_path }}"
|
||||||
|
|
||||||
|
- name: Download latest so binary
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: "{{ so_bin_url }}"
|
||||||
|
dest: "{{ so_bin_path }}/laconic-so"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0755
|
||||||
|
timeout: 60
|
||||||
|
force: yes
|
||||||
|
|
||||||
|
when:
|
||||||
|
- so_bin_get == true
|
||||||
|
|
||||||
|
|
||||||
|
- name: SO user tasks
|
||||||
|
tags: so-repo
|
||||||
|
block:
|
||||||
|
|
||||||
|
- name: Check repo paths
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ so_user }}"
|
||||||
|
group: "{{ so_user }}"
|
||||||
|
mode: 0755
|
||||||
|
with_items:
|
||||||
|
- "{{ so_repo_path }}"
|
||||||
|
|
||||||
|
- name: Checkout so repo
|
||||||
|
become: false
|
||||||
|
remote_user: "{{ so_user }}"
|
||||||
|
vars:
|
||||||
|
ansible_ssh_common_args: "-o ForwardAgent=yes"
|
||||||
|
ansible.builtin.git:
|
||||||
|
repo: "{{ so_repo_url }}"
|
||||||
|
dest: "{{ so_repo_path }}/stack-orchestrator"
|
||||||
|
update: "{{ so_repo_update }}"
|
||||||
|
version: "{{ so_repo_branch }}"
|
||||||
|
accept_hostkey: yes
|
||||||
|
|
||||||
|
- name: Setup the local dev environment
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: "{{ so_repo_path }}/stack-orchestrator/scripts/developer-mode-setup.sh"
|
||||||
|
chdir: "{{ so_repo_path }}/stack-orchestrator/"
|
||||||
|
when:
|
||||||
|
- so_repo_dev_setup == true
|
||||||
|
|
||||||
|
- name: Set path to dev laconic-so
|
||||||
|
set_fact:
|
||||||
|
so_bin_path: "{{ so_repo_path }}/stack-orchestrator/venv/bin"
|
||||||
|
when:
|
||||||
|
- so_repo_dev_setup == true
|
||||||
|
|
||||||
|
when:
|
||||||
|
- so_repo_checkout == true
|
Loading…
Reference in New Issue
Block a user