Added missing Makefile
This commit is contained in:
parent
459df6e30b
commit
e0109a93ac
169
Makefile
Normal file
169
Makefile
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
##### PARAMS
|
||||||
|
|
||||||
|
include Makefile.conf
|
||||||
|
|
||||||
|
##### TOOLS
|
||||||
|
|
||||||
|
OPENSSL=openssl
|
||||||
|
|
||||||
|
TAR=tar
|
||||||
|
GZIP=gzip
|
||||||
|
|
||||||
|
###### DIRS
|
||||||
|
|
||||||
|
KEYSDIR = ./keys
|
||||||
|
CFGDIR = ./configs
|
||||||
|
TMPDIR = ./tmp
|
||||||
|
|
||||||
|
###### FILES
|
||||||
|
|
||||||
|
hosts_keys_pub=$(foreach net,$(nets), \
|
||||||
|
$(foreach host,$(net_$(net)_hosts), \
|
||||||
|
$(KEYSDIR)/$(net)/$(host).pub \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
|
||||||
|
hosts_keys_priv=$(foreach net,$(nets), \
|
||||||
|
$(foreach host,$(net_$(net)_hosts), \
|
||||||
|
$(KEYSDIR)/$(net)/$(host).priv \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
|
||||||
|
hosts_tgz=$(foreach net,$(nets), \
|
||||||
|
$(foreach host,$(net_$(net)_hosts), \
|
||||||
|
$(CFGDIR)/$(net)/$(host).tar.gz \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
|
||||||
|
nets_hosts=$(foreach net,$(nets), \
|
||||||
|
$(foreach host,$(net_$(net)_hosts), \
|
||||||
|
$(TMPDIR)/hosts/$(net)/$(host) \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
|
||||||
|
.PHONY: all directories misc hosts_keys hosts_tgz clean cleanall cleantmp cleancfg cleankeys
|
||||||
|
|
||||||
|
### ALL ###
|
||||||
|
|
||||||
|
all: directories hosts_tgz
|
||||||
|
|
||||||
|
### CLEAN ###
|
||||||
|
|
||||||
|
clean: cleantmp cleancfg
|
||||||
|
cleanall: clean cleankeys
|
||||||
|
|
||||||
|
cleantmp:
|
||||||
|
-rm -rv $(TMPDIR)
|
||||||
|
|
||||||
|
cleancfg:
|
||||||
|
-rm -rv $(CFGDIR)
|
||||||
|
|
||||||
|
cleankeys:
|
||||||
|
-rm -rv $(KEYSDIR)
|
||||||
|
|
||||||
|
### DIRECTORIES ###
|
||||||
|
|
||||||
|
directories: $(TMPDIR) $(KEYSDIR) $(CFGDIR)
|
||||||
|
|
||||||
|
$(TMPDIR) $(KEYSDIR) $(CFGDIR):
|
||||||
|
mkdir -p $@
|
||||||
|
|
||||||
|
### MISC ###
|
||||||
|
|
||||||
|
misc:
|
||||||
|
true
|
||||||
|
|
||||||
|
### KEYS
|
||||||
|
|
||||||
|
hosts_keys: $(hosts_keys_pub) $(hosts_keys_priv)
|
||||||
|
|
||||||
|
$(KEYSDIR)/%.pem:
|
||||||
|
mkdir -p $(@D)
|
||||||
|
$(OPENSSL) genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out $@
|
||||||
|
|
||||||
|
$(KEYSDIR)/%.pub: $(KEYSDIR)/%.pem
|
||||||
|
$(OPENSSL) rsa -in $(KEYSDIR)/$*.pem -RSAPublicKey_out > $@
|
||||||
|
|
||||||
|
$(KEYSDIR)/%.priv: $(KEYSDIR)/%.pem
|
||||||
|
$(OPENSSL) rsa -in $(KEYSDIR)/$*.pem -text | sed -ne '/-----BEGIN RSA PRIVATE KEY-----/,/-----END RSA PRIVATE KEY-----/p' > $@
|
||||||
|
|
||||||
|
### NETS HOSTS
|
||||||
|
|
||||||
|
nets_hosts: hosts_keys $(nets_hosts)
|
||||||
|
|
||||||
|
$(TMPDIR)/hosts/%: net=$(firstword $(subst /, ,$*))
|
||||||
|
$(TMPDIR)/hosts/%: host=$(@F)
|
||||||
|
$(TMPDIR)/hosts/%: pubkey=$(KEYSDIR)/$(net)/$(host).pub
|
||||||
|
$(TMPDIR)/hosts/%: pubaddr=$(net_$(net)_$(host)_public_address)
|
||||||
|
$(TMPDIR)/hosts/%: pubport=$(net_$(net)_$(host)_public_port)
|
||||||
|
$(TMPDIR)/hosts/%: subnets=$(net_$(net)_$(host)_local_subnets)
|
||||||
|
|
||||||
|
$(TMPDIR)/hosts/%:
|
||||||
|
@echo hostconf net: $(net)
|
||||||
|
@echo hostconf host: $(host)
|
||||||
|
@echo hostconf pubkey: $(pubkey)
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
@echo Generating $@ for $(*F)
|
||||||
|
@
|
||||||
|
# Add Hostname
|
||||||
|
if [ -n "$(pubaddr)" ]; then echo "Address=$(pubaddr)" >> $@ ; fi
|
||||||
|
# Add Port
|
||||||
|
if [ -n "$(pubport)" ]; then echo "Port=$(pubport)" >> $@ ; fi
|
||||||
|
# Add Subnets
|
||||||
|
for subnet in $(subnets); do echo Subnet=$$subnet ; done >> $@
|
||||||
|
echo "" >> $@
|
||||||
|
# Add pubic key
|
||||||
|
cat $(pubkey) >> $@
|
||||||
|
|
||||||
|
### TINC.CONF
|
||||||
|
|
||||||
|
$(TMPDIR)/tinc.conf/%: net=$(firstword $(subst /, ,$*))
|
||||||
|
$(TMPDIR)/tinc.conf/%: host=$(@F)
|
||||||
|
$(TMPDIR)/tinc.conf/%:
|
||||||
|
@echo tinc.conf net: $(net)
|
||||||
|
@echo tinc.conf host: $(host)
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
@echo Generating $@ for $(*F)
|
||||||
|
# Add Hostname
|
||||||
|
echo "Name=$(*F)" > $@
|
||||||
|
# Add ConnectTo
|
||||||
|
for peer in $(net_$(net)_hosts); do if [ "$$peer" != $(host) ]; then echo ConnectTo=$$peer ; fi; done >> $@
|
||||||
|
echo "" >> $@
|
||||||
|
|
||||||
|
### TINC-UP
|
||||||
|
|
||||||
|
$(TMPDIR)/tinc-up/%: net=$(firstword $(subst /, ,$*))
|
||||||
|
$(TMPDIR)/tinc-up/%: host=$(@F)
|
||||||
|
$(TMPDIR)/tinc-up/%: localaddr=$(net_$(net)_$(host)_local_address)
|
||||||
|
$(TMPDIR)/tinc-up/%:
|
||||||
|
@echo tinc-up net: $(net)
|
||||||
|
@echo tinc-up host: $(host)
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
@echo Generating $@ for $(*F)
|
||||||
|
sed -e 's|^ADDRESS=$$|ADDRESS=$(localaddr)|' scripts/tinc-up > $@
|
||||||
|
|
||||||
|
### CONFIG ARCHIVES
|
||||||
|
|
||||||
|
hosts_tgz: hosts_keys $(hosts_tgz)
|
||||||
|
|
||||||
|
.SECONDEXPANSION:
|
||||||
|
$(CFGDIR)/%.tar.gz: net=$(firstword $(subst /, ,$*))
|
||||||
|
$(CFGDIR)/%.tar.gz: host=$(basename $(basename $(@F)))
|
||||||
|
$(CFGDIR)/%.tar.gz: $(TMPDIR)/tinc.conf/% $(TMPDIR)/tinc-up/% $(nets_hosts)
|
||||||
|
@echo Generating $@ for $(net) - $(host)
|
||||||
|
@echo hosts_tgz net: $(net)
|
||||||
|
@echo hosts_tgz host: $(host)
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
$(TAR) --append --file $(basename $@) --directory=$(KEYSDIR)/ --transform='s|$(host).priv|rsa_key.priv|' --mode=0600 $(net)/$(host).priv
|
||||||
|
|
||||||
|
$(TAR) --append --file $(basename $@) --directory=$(TMPDIR)/hosts --transform='s|^$(net)|$(net)/hosts|' $(net)
|
||||||
|
|
||||||
|
$(TAR) --append --file $(basename $@) --directory=$(TMPDIR)/tinc.conf/$(net) --transform='s|$(host)|$(net)/tinc.conf|' $(host)
|
||||||
|
|
||||||
|
# $(TAR) --append --file $(basename $@) --directory=./scripts --transform='s|^|$(net)/|' --mode=0755 tinc-up
|
||||||
|
$(TAR) --append --file $(basename $@) --directory=./scripts --transform='s|^|$(net)/|' --mode=0755 tinc-down
|
||||||
|
$(TAR) --append --file $(basename $@) --directory=./scripts --transform='s|^|$(net)/|' --mode=0755 subnet-up
|
||||||
|
$(TAR) --append --file $(basename $@) --directory=./scripts --transform='s|^|$(net)/|' --mode=0755 subnet-down
|
||||||
|
$(TAR) --append --file $(basename $@) --directory=$(TMPDIR)/tinc-up/$(net) --transform='s|$(host)|$(net)/tinc-up|' --mode=0755 $(host)
|
||||||
|
|
||||||
|
$(GZIP) $(basename $@)
|
Loading…
Reference in New Issue
Block a user