103 lines
3.2 KiB
Makefile
103 lines
3.2 KiB
Makefile
SERVER ?= "192.168.2.41"
|
|
SSH_USER = iamthefij
|
|
SSH_KEY = ~/.ssh/id_ed25519
|
|
|
|
.PHONY: rm-nomad
|
|
rm-nomad:
|
|
hashi-up nomad uninstall \
|
|
--ssh-target-addr $(SERVER) \
|
|
--ssh-target-key $(SSH_KEY) \
|
|
--ssh-target-user $(SSH_USER) \
|
|
--ssh-target-sudo-pass $(SSH_TARGET_SUDO_PASS)
|
|
|
|
.PHONY: nomad-up
|
|
nomad-up:
|
|
hashi-up nomad install \
|
|
--ssh-target-addr $(SERVER) \
|
|
--ssh-target-key $(SSH_KEY) \
|
|
--ssh-target-user $(SSH_USER) \
|
|
--ssh-target-sudo-pass $(SSH_TARGET_SUDO_PASS) \
|
|
--server --client
|
|
hashi-up nomad start \
|
|
--ssh-target-addr $(SERVER) \
|
|
--ssh-target-key $(SSH_KEY) \
|
|
--ssh-target-user $(SSH_USER) \
|
|
--ssh-target-sudo-pass $(SSH_TARGET_SUDO_PASS)
|
|
|
|
.PHONY: rm-consul
|
|
rm-consul:
|
|
hashi-up consul uninstall \
|
|
--ssh-target-addr $(SERVER) \
|
|
--ssh-target-key $(SSH_KEY) \
|
|
--ssh-target-user $(SSH_USER) \
|
|
--ssh-target-sudo-pass $(SSH_TARGET_SUDO_PASS)
|
|
|
|
.PHONY: consul-up
|
|
consul-up:
|
|
hashi-up consul install \
|
|
--ssh-target-addr $(SERVER) \
|
|
--ssh-target-key $(SSH_KEY) \
|
|
--ssh-target-user $(SSH_USER) \
|
|
--ssh-target-sudo-pass $(SSH_TARGET_SUDO_PASS) \
|
|
--advertise-addr $(SERVER) \
|
|
--client-addr 0.0.0.0 \
|
|
--http-addr 0.0.0.0 \
|
|
--connect \
|
|
--server
|
|
hashi-up consul start \
|
|
--ssh-target-addr $(SERVER) \
|
|
--ssh-target-key $(SSH_KEY) \
|
|
--ssh-target-user $(SSH_USER) \
|
|
--ssh-target-sudo-pass $(SSH_TARGET_SUDO_PASS)
|
|
|
|
.PHONY: cluster
|
|
cluster: ansible-cluster
|
|
|
|
venv/bin/ansible:
|
|
python3 -m venv venv
|
|
./venv/bin/pip install ansible python-consul hvac
|
|
|
|
.PHONY: galaxy
|
|
galaxy: venv/bin/ansible
|
|
./venv/bin/ansible-galaxy install -p roles -r roles/requirements.yml
|
|
./venv/bin/ansible-galaxy collection install -r collections/requirements.yml
|
|
|
|
|
|
.PHONY: ansible-cluster
|
|
ansible-cluster: venv/bin/ansible galaxy
|
|
env VIRTUAL_ENV=/Users/ifij/workspace/iamthefij/orchestration-tests/nomad/venv ./venv/bin/ansible-playbook -K -vv \
|
|
$(shell test -f vault-keys.json && echo '-e "@vault-keys.json"') \
|
|
-i ansible_hosts.yml -M ./roles ./setup-cluster.yml
|
|
|
|
.PHONY: bootstrap-values
|
|
bootstrap-values: venv/bin/ansible galaxy
|
|
env VIRTUAL_ENV=/Users/ifij/workspace/iamthefij/orchestration-tests/nomad/venv ./venv/bin/ansible-playbook -vv \
|
|
$(shell test -f vault-keys.json && echo '-e "@vault-keys.json"') \
|
|
-i ansible_hosts.yml -M ./roles ./bootstrap-values.yml
|
|
|
|
.PHONY: unseal-vault
|
|
unseal-vault: venv/bin/ansible galaxy
|
|
env VIRTUAL_ENV=/Users/ifij/workspace/iamthefij/orchestration-tests/nomad/venv ./venv/bin/ansible-playbook -K -vv \
|
|
-e "@vault-keys.json" -i ansible_hosts.yml -M ./roles ./unseal-vault.yml
|
|
|
|
.PHONY: init
|
|
init:
|
|
@terraform init
|
|
|
|
.PHONY: plan
|
|
plan:
|
|
@terraform plan \
|
|
-var "nomad_secret_id=$(shell jq -r .SecretID nomad_bootstrap.json)" \
|
|
-var "vault_token=$(shell jq -r .root_token vault-keys.json)"
|
|
|
|
.PHONY: apply
|
|
apply:
|
|
@terraform apply \
|
|
-var "nomad_secret_id=$(shell jq -r .SecretID nomad_bootstrap.json)" \
|
|
-var "vault_token=$(shell jq -r .root_token vault-keys.json)"
|
|
|
|
# Install CNI on hosts?
|
|
# curl -L -o cni-plugins.tgz "https://github.com/containernetworking/plugins/releases/download/v1.0.0/cni-plugins-linux-$( [ $(uname -m) = aarch64 ] && echo arm64 || echo amd64)"-v1.0.0.tgz
|
|
# sudo mkdir -p /opt/cni/bin
|
|
# sudo tar -C /opt/cni/bin -xzf cni-plugins.tgz
|