diff --git a/defaults.yml b/defaults.yml deleted file mode 100644 index 184975d..0000000 --- a/defaults.yml +++ /dev/null @@ -1,15 +0,0 @@ -# containers during host setup -container_names: - - dev - - txt - - haskell - -# containers tool groups -container_tools: - dev: - - cpp - - js - txt: - - txt - haskell: - - haskell diff --git a/playbooks/box.yml b/playbooks/box.yml index da77359..8b13789 100644 --- a/playbooks/box.yml +++ b/playbooks/box.yml @@ -1,30 +1 @@ -- name: Configure distrobox dev container - hosts: localhost - connection: local - vars: - vars_prompt: - - name: tools_in - prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, txt, lang)" - roles: - # link and copy dotfiles - - role: dotfiles - vars: - configue: - - bash - - cli - - git - - ssh - - scripts - # install apps - - role: installs - vars: - apps: - - cli - - # install and setup dev tools - - role: dev - vars: - tools: "{{ tools_in.split(',') }}" - - # TODO: repositories diff --git a/playbooks/host.yml b/playbooks/host.yml index bc3599a..8b13789 100644 --- a/playbooks/host.yml +++ b/playbooks/host.yml @@ -1,38 +1 @@ -- name: Create distrobox containers on host - hosts: localhost - connection: local - vars: - tasks: - - name: Create containers - include_role: - name: dev_host - vars: - container_name: '{{ item }}' - loop: '{{ container_names }}' -- name: Setup containers - hosts: containers - roles: - # link and copy dotfiles - - role: dotfiles - vars: - configue: - - bash - - cli - - git - - ssh - - scripts - - # install apps - - role: installs - vars: - apps: - - cli - - # install and setup dev tools - - role: dev - vars: - tools: "{{ container_tools['{{item}}'] }}" - - # TODO: repositories - diff --git a/roles/dev/tasks/main.yml b/roles/dev/tasks/main.yml deleted file mode 100644 index 7014df5..0000000 --- a/roles/dev/tasks/main.yml +++ /dev/null @@ -1,18 +0,0 @@ -- ansible.builtin.import_tasks: build.yml - -- ansible.builtin.import_tasks: cpp.yml - when: "'cpp' in tools" - -- ansible.builtin.import_tasks: js.yml - when: "'js' in tools" - -- ansible.builtin.import_tasks: haskell.yml - when: "'haskell' in tools" - -- ansible.builtin.import_tasks: txt.yml - when: "'txt' in tools" - -- ansible.builtin.import_tasks: lang.yml - when: "'lang' in tools" - -# TODO: ocaml, truffle, ... diff --git a/roles/dev_host/defaults/main.yml b/roles/dev_host/defaults/main.yml deleted file mode 100644 index e7acdef..0000000 --- a/roles/dev_host/defaults/main.yml +++ /dev/null @@ -1,3 +0,0 @@ -container_name: dev -container_image: quay.io/fedora/fedora-toolbox -container_image_tag: latest diff --git a/roles/dev_host/tasks/main.yml b/roles/dev_host/tasks/main.yml deleted file mode 100644 index 382884e..0000000 --- a/roles/dev_host/tasks/main.yml +++ /dev/null @@ -1,37 +0,0 @@ -# os based on https://github.com/sandorex/config/blob/master/playbooks/container-dev.yml - -- name: Check if container already exists - containers.podman.podman_container_info: - name: '{{ container_name }}' - register: container_info - -- name: Create container using distrobox - ansible.builtin.command: - # requires distrobox version 1.7 - # add python3 to allow ansible to work - # add ansible to run local roles without host (?) - cmd: >- - distrobox create --yes --no-entry --pull - --image '{{ container_image }}:{{ container_image_tag }}' - --name '{{ container_name }}' - --hostname '{{ ansible_hostname }}' - --additional-packages 'python3 ansible' - when: container_info.containers | length == 0 - -- name: Start the container - ansible.builtin.command: - cmd: 'distrobox enter --name {{ container_name }} -- sh -c ''exit''' - # start if not running or if not defined - when: not (container_info.containers[0].State.Running | default(false)) - -- name: Add container to host - changed_when: no - ansible.builtin.add_host: - name: '{{ container_name }}' # ?? - groups: containers - ansible_connection: distrobox - ansible_host: '{{ container_name }}' - ansible_user: '{{ ansible_user_id }}' - fedora_version: '{{ container_image_tag }}' # ?? - -# container setup is done outside (?) diff --git a/roles/dev/tasks/haskell.yml b/roles/haskell/tasks/main.yml similarity index 100% rename from roles/dev/tasks/haskell.yml rename to roles/haskell/tasks/main.yml diff --git a/roles/dev/tasks/build.yml b/roles/installs/tasks/build.yml similarity index 100% rename from roles/dev/tasks/build.yml rename to roles/installs/tasks/build.yml diff --git a/roles/installs/tasks/cli.yml b/roles/installs/tasks/cli.yml index 0284113..8c9724d 100644 --- a/roles/installs/tasks/cli.yml +++ b/roles/installs/tasks/cli.yml @@ -5,16 +5,12 @@ - bash - fish - trash-cli - - # dev utils - just - jsonnet - - shellcheck # edit utils - helix - micro - - nano - tmux - tmate - ripgrep diff --git a/roles/dev/tasks/cpp.yml b/roles/installs/tasks/cpp.yml similarity index 100% rename from roles/dev/tasks/cpp.yml rename to roles/installs/tasks/cpp.yml diff --git a/roles/dev/tasks/js.yml b/roles/installs/tasks/javascript.yml similarity index 100% rename from roles/dev/tasks/js.yml rename to roles/installs/tasks/javascript.yml diff --git a/roles/installs/tasks/main.yml b/roles/installs/tasks/main.yml index 9526228..33454d5 100644 --- a/roles/installs/tasks/main.yml +++ b/roles/installs/tasks/main.yml @@ -1,6 +1,18 @@ +- ansible.builtin.import_tasks: build.yml + when: "'build' in apps" + - ansible.builtin.import_tasks: cli.yml when: "'cli' in apps" +- ansible.builtin.import_tasks: cpp.yml + when: "'cpp' in apps" + +- ansible.builtin.import_tasks: lang.yml + when: "'lang' in apps" + +- ansible.builtin.import_tasks: javascript.yml + when: "'javascript' in apps" + - ansible.builtin.import_tasks: gui.yml when: "'gui' in apps" diff --git a/playbooks/distro.yml b/roles/truffle/tasks/main.yml similarity index 100% rename from playbooks/distro.yml rename to roles/truffle/tasks/main.yml diff --git a/roles/dev/tasks/txt.yml b/roles/writing/tasks/main.yml similarity index 100% rename from roles/dev/tasks/txt.yml rename to roles/writing/tasks/main.yml