Getting Started

  • 以paopaodns镜像为例,esxi平台

前提

  1. 下载butane win版👉:https://github.com/coreos/butane/releases/
  2. 下载最新版flatcar👉:[[[https://stable.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vmware_ova.ova]]
  3. 参考flatcar.butane.yaml修改paopaodns.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
variant: flatcar

version: 1.1.0

kernel_arguments:

  should_not_exist:

    - flatcar.autologin

passwd:

  users:

    - name: root

      password_hash: $6$SALT$io0TPmhM8ythCm7Idt0AfYvTuFCLyA1CMVmeT3EUqarf2NQcTuLKEgP9.4Q8fgClzP7OCnyOY1wo1xDw0jtyH1

      ssh_authorized_keys:

        - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAtWYS4SAiOLhsrgrMk8W4nquBqALsfhjNi1r2Odmpfe kidy789@linux.com

storage:

  files:

    - path: /etc/hostname

      contents:

        inline: paopaodns-vm

    - path: /etc/systemd/network/00-ens192.network

      mode: 0644

      contents:

        inline: |

          [Match]

          Name=ens192

          [Network]

          DHCP=no

          Address=192.168.21.20/24

          Gateway=192.168.21.1

          DNS=223.5.5.5

          DNS=1.1.1.1

    - path: /etc/iptables.rules

      mode: 0644

      contents:

        inline: |

          *filter

          :INPUT ACCEPT [0:0]

          -A INPUT -p udp --dport 53 -j ACCEPT

          -A INPUT -p tcp --dport 53 -j ACCEPT

          COMMIT

systemd:

  units:

    - name: systemd-resolved.service

      enabled: false

      mask: true

    - name: docker.service

      enabled: true

    - name: iptables-restore.service

      enabled: true

      contents: |

        [Unit]

        Description=Restore iptables rules

        Before=network-pre.target

        [Service]

        Type=oneshot

        ExecStart=/sbin/iptables-restore /etc/iptables.rules

        RemainAfterExit=yes

        [Install]

        WantedBy=multi-user.target

    - name: paopaodns.service

      enabled: true

      contents: |

        [Unit]

        Description=PaoPaoDNS Service

        After=docker.service network-online.target

        Requires=docker.service network-online.target

        [Service]

        TimeoutStartSec=0

        ExecStartPre=-/usr/bin/docker rm --force paopaodns

        ExecStart=/usr/bin/docker run --name paopaodns --net host --restart always -v /data:/data -e CNAUTO=yes -e IPV6=yes -e TZ=Asia/Shanghai -e UPDATE=daily -e DNS_SERVERNAME=PaoPaoDNS -e CUSTOM_FORWARD=119.29.29.29,1.1.1.1:53 public.ecr.aws/sliamb/paopaodns

        ExecStop=/usr/bin/docker stop paopaodns

        Restart=always

        RestartSec=5s

        [Install]

        WantedBy=multi-user.target
  1. 已安装wsl 2 for ubuntu 22.04(linux系统需要下载对应的butane版本)
  2. 创建ed25519密钥对,并将公钥*.pub内容粘贴至passwd·users·ssh_authorized_keys·- ssh-ed25519后面
  3. 已安装MobaXterm_Personal(当然也可以是其他ssh工具)

Installing Flatcar

win端

  1. 将paopaodns.yaml生成json
    1
    .\butane-x86_64-pc-windows-gnu.exe -p paopaodns.yaml
  2. 新建json文件保存生成的代码
  3. WSL 2生成base64码
1
base64 -w 0 paopaodns.json

esxi端

  1. 用flatcar_production_vmware_ova.ova创建虚拟机
    • 输入主机名称:其他配置·options·Hostname
    • 输入base64码:其他配置·options·Ignition/coreos-cloudinit data
    • 输入数据编码格式(base64):其他配置·options·Ignition/coreos-cloudinit data encoding

MobaXterm端

  1. 创建SSH节点
    • 输入节点ip:Basic SSH setting·Remote host
    • 输入登入账号root:Basic SSH setting·Specify username
    • 加载前述生成的私钥:Basic SSH setting·Advanced SSH setting·Use private key
  2. 访问节点

Flatcar Container Linux 在运行docker方面还是不错的,但是由于是提前配置好了,缺点也非常明显,修改成本高,如果不需要调试的docker项目还是可以使用的。