|
Xdev Host Manager
authored
a day ago
|
1
|
# Madagascar Local Authority
|
|
Xdev Host Manager
authored
2 days ago
|
2
|
|
|
Xdev Host Manager
authored
a day ago
|
3
|
Local authority for Madagascar hosts, DNS manifests, work orders, and host certificates.
|
|
Xdev Host Manager
authored
2 days ago
|
4
|
|
|
Bogdan Timofte
authored
a day ago
|
5
|
The development checkout lives locally at:
|
|
|
6
|
|
|
|
7
|
```text
|
|
|
8
|
/Users/bogdan/Documents/Workspaces/Xdev/Madagascar/LocalAuthority
|
|
|
9
|
```
|
|
|
10
|
|
|
Bogdan Timofte
authored
a day ago
|
11
|
The canonical GitPrep repository is:
|
|
|
12
|
|
|
|
13
|
```text
|
|
|
14
|
git@192.168.2.102:repositories/bogdan/LocalAuthority.git
|
|
|
15
|
```
|
|
|
16
|
|
|
Bogdan Timofte
authored
a day ago
|
17
|
The runtime instance lives on jumper and remains the local source for operational registry data:
|
|
Xdev Host Manager
authored
2 days ago
|
18
|
|
|
|
19
|
- `config/hosts.yaml` - git-versioned host registry
|
|
|
20
|
- `config/local-hosts.tsv` - DNS manifest exported for local resolvers
|
|
Xdev Host Manager
authored
2 days ago
|
21
|
- `config/work-orders.yaml` - confirmable operational changes
|
|
Xdev Host Manager
authored
2 days ago
|
22
|
- `scripts/host_manager.pl` - Perl-only web app
|
|
Xdev Host Manager
authored
2 days ago
|
23
|
- `scripts/sync_local_hosts.sh` - local DNS sync to jumper and as01
|
|
Xdev Host Manager
authored
2 days ago
|
24
|
- `scripts/ca_manager.sh` - local OpenSSL CA helper for host certificates
|
|
Xdev Host Manager
authored
2 days ago
|
25
|
|
|
|
26
|
The public `xdev.ro` zone is maintained in the separate DNS public-zone repository.
|
|
|
27
|
|
|
|
28
|
Runtime path:
|
|
|
29
|
|
|
|
30
|
```text
|
|
|
31
|
/usr/local/xdev-host-manager
|
|
|
32
|
```
|
|
|
33
|
|
|
|
34
|
Secrets live outside git in `/etc/xdev/host-manager.env`.
|
|
Xdev Host Manager
authored
2 days ago
|
35
|
|
|
Xdev Host Manager
authored
a day ago
|
36
|
The product name is **Madagascar Local Authority**. The technical service, Unix user, repository path, and environment files still use `host-manager`.
|
|
|
37
|
|
|
Xdev Host Manager
authored
2 days ago
|
38
|
The web UI is OTP-protected for all registry data, downloads, exports, and writes. Automation should consume this repository through git with dedicated read-only keys, not through unauthenticated HTTP.
|
|
Xdev Host Manager
authored
2 days ago
|
39
|
|
|
Bogdan Timofte
authored
a day ago
|
40
|
## Local development and deployment
|
|
|
41
|
|
|
|
42
|
Work on application code locally, commit changes, then deploy to jumper:
|
|
|
43
|
|
|
|
44
|
```bash
|
|
|
45
|
cd /Users/bogdan/Documents/Workspaces/Xdev/Madagascar/LocalAuthority
|
|
|
46
|
scripts/deploy_to_jumper.sh
|
|
|
47
|
```
|
|
|
48
|
|
|
|
49
|
The deploy script copies code, docs and deployment assets, restarts `host-manager`, and checks `/healthz`.
|
|
|
50
|
|
|
|
51
|
`config/` is not deployed by default because `hosts.yaml`, `local-hosts.tsv`, and `work-orders.yaml` are operational data that may be changed on jumper by the application. Deploy config only when intentionally replacing runtime registry data:
|
|
|
52
|
|
|
|
53
|
```bash
|
|
|
54
|
scripts/deploy_to_jumper.sh --include-config
|
|
|
55
|
```
|
|
|
56
|
|
|
Xdev Host Manager
authored
2 days ago
|
57
|
The default internal domain is `madagascar.xdev.ro`. Short aliases are derived automatically from FQDNs, so `autonas01.madagascar.xdev.ro` also publishes `autonas01` without declaring it separately.
|
|
|
58
|
|
|
Xdev Host Manager
authored
2 days ago
|
59
|
Name removals with operational impact go through a Work Order. A WO records intent first; the operational checklist must be completed before confirmation can update `hosts.yaml`, mark the WO as confirmed, and regenerate `local-hosts.tsv`. Resolver sync remains an explicit operator step.
|
|
Xdev Host Manager
authored
2 days ago
|
60
|
|
|
Xdev Host Manager
authored
2 days ago
|
61
|
The local host CA stores private material outside git under `var/ca`. Initialize it on jumper with:
|
|
|
62
|
|
|
|
63
|
```bash
|
|
|
64
|
sudo scripts/ca_manager.sh init
|
|
|
65
|
```
|