-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbootstrap.yaml
164 lines (143 loc) · 5.01 KB
/
bootstrap.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
---
# don't have ansible yet?
# just run this
# sudo apt-get install -y python3 python3-pip curl pipx && pipx install --include-deps ansible && ansible-playbook bootstrap.yaml -i localhost, --ask-become-pass
- name: Deploy Desktop Machine
hosts: all
gather_facts: false
connection: local
tasks:
####################################################################
#################################################### change my shell
####################################################################
#
# - name: change user shell to zsh
# become: yes
# user:
# name: "morgan" # this is not ideal but its my un so whatever
# shell: /bin/zsh
#
####################################################################
######################################################### base utils
####################################################################
- name: apt Update
ansible.builtin.apt:
update_cache: yes
upgrade: yes
become: true
- name: install stuff that should be out of box
ansible.builtin.apt:
pkg:
- wget
- curl
- stow
- git
- python3
- python3-pip # you'll need this to even get ansible...
- kitty
- ufw
- rsync
- obs-studio
- kdenlive
become: true
####################################################################
####################################################### grab my dots
####################################################################
# - name: Clone dotfiles repo
# ansible.builtin.git:
# repo: https://github.com/vmorganp/dotfiles.git
# dest: /home/morgan/dotfiles
####################################################################
######## install and remove i3 because it sets up the nix one nicely
####################################################################
- name: install i3
ansible.builtin.apt:
pkg:
- i3
become: true
- name: Remove "i3" package
ansible.builtin.apt:
name: i3
state: absent
become: true
####################################################################
############################################################ flatpak
####################################################################
- name: Add the flathub flatpak repository remote to the user installation
community.general.flatpak_remote:
name: flathub
state: present
flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo
method: user
- name: Install the spotify flatpak
community.general.flatpak:
name: com.spotify.Client
state: present
method: user
####################################################################
############################################################# Docker
####################################################################
- name: Add Docker GPG apt Key
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
become: true
- name: Add Docker Repository
apt_repository:
repo: deb https://download.docker.com/linux/ubuntu focal stable
state: present
become: true
- name: apt Update
ansible.builtin.apt:
update_cache: yes
upgrade: yes
become: true
- name: install docker
ansible.builtin.apt:
pkg:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
become: true
- name: add user to docker group
user:
name: "morgan"
append: yes
groups: docker
become: true
- name: install docker
ansible.builtin.apt:
pkg:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
become: true
####################################################################
############################################################### Node
####################################################################
- name: Install nvm
become: no
ansible.builtin.shell: >
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.39.7/install.sh | bash
args:
executable: /bin/bash
chdir: "$HOME"
creates: "$HOME/.nvm/nvm.sh"
- name: Install node
become: no
shell: >
. ~/.nvm/nvm.sh && nvm install stable && nvm use stable && nvm alias default stable
args:
executable: /bin/bash
####################################################################
########################################################### Firewall
####################################################################
- name: Deny everything and enable UFW
community.general.ufw:
state: enabled
policy: deny
become: true