diff --git a/playbook/input.yml b/playbook/input.yml index b68b046..eaad757 100644 --- a/playbook/input.yml +++ b/playbook/input.yml @@ -2,16 +2,20 @@ - name: Ask user for the input hosts: localhost tags: always + vars_prompt: + - name: _dev_machine + prompt: "Is this a developer's machine?" + private: no + default: "yes" + - name: _rust_extras + prompt: "Do you want to install rust extras?" + private: no + default: "no" tasks: - block: - - debug: - var: dev_machine - - name: Dev Machine prompt - pause: - prompt: "Is this a developer's machine? yes|no" - register: _dev_machine - when: - - dev_machine == 'yes' - - name: Set dev machine fact based on input + - name: Set dev machine fact set_fact: - dev_machine: "{{ _dev_machine }}" + _dev_machine: "{{ _dev_machine }}" + - name: Set rust extras fact + set_fact: + _rust_extras: "{{ _rust_extras }}" diff --git a/playbook/main.yml b/playbook/main.yml index d8a740a..d39064c 100644 --- a/playbook/main.yml +++ b/playbook/main.yml @@ -1,6 +1,6 @@ --- -# - name: Include prompts playbook -# import_playbook: input.yml +- name: Include prompts playbook + import_playbook: input.yml - name: Find out what kind of host we are hosts: all @@ -12,11 +12,21 @@ - hosts: os_MacOSX gather_facts: True roles: - - common - - macos + - role: macos + vars: + - dev_machine: "{{ _dev_machine }}" + - role: common + vars: + - dev_machine: "{{ _dev_machine }}" + - rust_extras: "{{ _rust_extras }}" - hosts: os_Fedora gather_facts: True roles: - - common - - fedora + - role: fedora + vars: + dev_machine: "{{ _dev_machine }}" + - role: common + vars: + - dev_machine: "{{ _dev_machine }}" + - rust_extras: "{{ _rust_extras }}" diff --git a/playbook/roles/alacritty/defaults/main.yml b/playbook/roles/alacritty/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/alacritty/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/alacritty.yml b/playbook/roles/alacritty/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/alacritty.yml rename to playbook/roles/alacritty/tasks/main.yml diff --git a/playbook/roles/anyenv/defaults/main.yml b/playbook/roles/anyenv/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/anyenv/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/anyenv.yml b/playbook/roles/anyenv/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/anyenv.yml rename to playbook/roles/anyenv/tasks/main.yml diff --git a/playbook/roles/arch/defaults/main.yml b/playbook/roles/arch/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/arch/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/main.yml b/playbook/roles/common/tasks/main.yml index a1b202d..4bc4791 100644 --- a/playbook/roles/common/tasks/main.yml +++ b/playbook/roles/common/tasks/main.yml @@ -1,18 +1,44 @@ --- - debug: var: dev_machine -- import_tasks: anyenv.yml +- import_role: + name: anyenv when: - - dev_machine == 'yes' -# - import_tasks: neovim.yml -# - import_tasks: rust.yml -# - import_tasks: tmux.yml -# - import_tasks: alacritty.yml -# - import_tasks: hyper.yml -# - import_tasks: kerl.yml -- import_tasks: git.yml -# - import_tasks: zsh.yml -# - import_tasks: sdkman.yml + - dev_machine == true +- import_role: + name: neovim +- import_role: + name: rust + vars: + - rust_extras: rust_extras + when: + - dev_machine == true +- import_role: + name: tmux + when: + - dev_machine == true +- import_role: + name: alacritty + when: + - dev_machine == true +- import_role: + name: hyper + when: + - dev_machine == true +- import_role: + name: kerl + when: + - dev_machine == true +- import_role: + name: git + when: + - dev_machine == "yes" +- import_role: + name: zsh +- import_role: + name: sdkman + when: + - dev_machine == true - name: Create ~/bin directory diff --git a/playbook/roles/fedora/defaults/main.yml b/playbook/roles/fedora/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/fedora/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/fedora/tasks/main.yml b/playbook/roles/fedora/tasks/main.yml index de0961b..19119b7 100644 --- a/playbook/roles/fedora/tasks/main.yml +++ b/playbook/roles/fedora/tasks/main.yml @@ -1,28 +1,32 @@ --- -# - name: Update Packages -# become: yes -# become_method: sudo -# dnf: -# name: "*" -# state: latest +- name: Update Packages + become: yes + become_method: sudo + dnf: + name: "*" + state: latest -# - name: Install neovim -# become: yes -# become_method: sudo -# dnf: -# name: "neovim" -# state: latest +- name: Install basics + become: yes + become_method: sudo + dnf: + name: + - zsh + - git + - cmake + - tmux + - gpg + - neovim + state: latest -# - name: Install @development-tools -# become: yes -# become_method: sudo -# dnf: -# name: "@development-tools" -# state: latest +- name: Install @development-tools + when: + - dev_machine == true + become: yes + become_method: sudo + dnf: + name: + - "@development-tools" + - openssl-dev + state: latest -# - name: Install openssl-dev -# become: yes -# become_method: sudo -# dnf: -# name: "openssl-devel" -# state: latest diff --git a/playbook/roles/git/defaults/main.yml b/playbook/roles/git/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/git/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/git.yml b/playbook/roles/git/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/git.yml rename to playbook/roles/git/tasks/main.yml diff --git a/playbook/roles/hyper/defaults/main.yml b/playbook/roles/hyper/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/hyper/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/hyper.yml b/playbook/roles/hyper/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/hyper.yml rename to playbook/roles/hyper/tasks/main.yml diff --git a/playbook/roles/kerl/defaults/main.yml b/playbook/roles/kerl/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/kerl/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/kerl.yml b/playbook/roles/kerl/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/kerl.yml rename to playbook/roles/kerl/tasks/main.yml diff --git a/playbook/roles/macos/defaults/main.yml b/playbook/roles/macos/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/macos/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/neovim/defaults/main.yml b/playbook/roles/neovim/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/neovim/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/neovim.yml b/playbook/roles/neovim/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/neovim.yml rename to playbook/roles/neovim/tasks/main.yml diff --git a/playbook/roles/rust/defaults/main.yml b/playbook/roles/rust/defaults/main.yml new file mode 100644 index 0000000..fc2c359 --- /dev/null +++ b/playbook/roles/rust/defaults/main.yml @@ -0,0 +1,3 @@ +--- +dev_machine: yes +rust_extras: no diff --git a/playbook/roles/common/tasks/rust.yml b/playbook/roles/rust/tasks/main.yml similarity index 81% rename from playbook/roles/common/tasks/rust.yml rename to playbook/roles/rust/tasks/main.yml index f0eefbe..681c468 100644 --- a/playbook/roles/common/tasks/rust.yml +++ b/playbook/roles/rust/tasks/main.yml @@ -14,28 +14,40 @@ shell: ~/.cargo/bin/cargo install ripgrep args: creates: ~/.cargo/bin/rg + when: + - rust_extras == true - name: Install exa shell: ~/.cargo/bin/cargo install exa args: creates: ~/.cargo/bin/exa + when: + - rust_extras == true - name: Install just shell: ~/.cargo/bin/cargo install just args: creates: ~/.cargo/bin/just + when: + - rust_extras == true - name: Install cargo-update shell: ~/.cargo/bin/cargo install cargo-update args: creates: ~/.cargo/bin/cargo-install-update + when: + - rust_extras == true - name: Install bat shell: ~/.cargo/bin/cargo install bat args: creates: ~/.cargo/bin/bat + when: + - rust_extras == true - name: Install rls shell: ~/.cargo/bin/rustup component add rls-preview rust-analysis rust-src args: creates: ~/.cargo/bin/rls + when: + - rust_extras == true diff --git a/playbook/roles/sdkman/defaults/main.yml b/playbook/roles/sdkman/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/sdkman/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/sdkman.yml b/playbook/roles/sdkman/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/sdkman.yml rename to playbook/roles/sdkman/tasks/main.yml diff --git a/playbook/roles/tmux/defaults/main.yml b/playbook/roles/tmux/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/tmux/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/tmux.yml b/playbook/roles/tmux/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/tmux.yml rename to playbook/roles/tmux/tasks/main.yml diff --git a/playbook/roles/ubuntu/defaults/main.yml b/playbook/roles/ubuntu/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/ubuntu/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/zsh/defaults/main.yml b/playbook/roles/zsh/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/zsh/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/zsh.yml b/playbook/roles/zsh/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/zsh.yml rename to playbook/roles/zsh/tasks/main.yml