Skip to content

Commit 05fdaae

Browse files
committed
代码完成
1 parent 160e7c2 commit 05fdaae

File tree

4 files changed

+177
-49
lines changed

4 files changed

+177
-49
lines changed

README.md

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# container-install
22

3-
### Install
3+
### Install Docker
44
install container from url:
55
location file:
66
```shell script
77
container-install install
8-
--docker true
8+
--docker T
99
--host 172.16.213.131
1010
--host 172.16.213.132
1111
--user root
@@ -18,7 +18,7 @@ install container from url:
1818
remote url:
1919
```shell script
2020
container-install install
21-
--docker true
21+
--docker T
2222
--host 172.16.213.131
2323
--host 172.16.213.132
2424
--user root
@@ -28,22 +28,64 @@ install container from url:
2828
--lib /var/lib/docker
2929
--pkg-url https://download.docker.com/linux/static/stable/x86_64/docker-18.09.4.tgz
3030
```
31-
### UnInstall
31+
32+
### Install Containerd
33+
install container from url:
34+
location file:
35+
```shell script
36+
container-install install
37+
--docker F
38+
--host 172.16.213.131
39+
--host 172.16.213.132
40+
--user root
41+
--passwd admin
42+
--registry 127.0.0.1
43+
--registry 127.0.0.2
44+
--lib /var/lib/containerd
45+
--pkg-url /root/containerd-1.2.7.tgz
46+
```
47+
remote url:
48+
```shell script
49+
container-install install
50+
--docker F
51+
--host 172.16.213.131
52+
--host 172.16.213.132
53+
--user root
54+
--passwd admin
55+
--registry 127.0.0.1
56+
--registry 127.0.0.2
57+
--lib /var/lib/containerd
58+
--pkg-url https://github.com/containerd/containerd/releases/download/v1.2.7/containerd-1.2.7.linux-amd64.tar.gz
59+
```
60+
61+
### UnInstall Docker
3262
uninstall container:
3363
```shell script
3464
container-install uninstall
35-
--docker true
65+
--docker T
3666
--host 172.16.213.131
3767
--host 172.16.213.132
3868
--user root
3969
--passwd admin
4070
--docker-lib /var/lib/docker
4171
```
4272

73+
### UnInstall Containerd
74+
uninstall container:
75+
```shell script
76+
container-install uninstall
77+
--docker F
78+
--host 172.16.213.131
79+
--host 172.16.213.132
80+
--user root
81+
--passwd admin
82+
--docker-lib /var/lib/containerd
83+
```
84+
4385
### Print Download Url
4486
print download url for docker:
4587
```shell script
46-
container-install print --docker true
88+
container-install print --docker T
4789
```
4890

4991
the docker Newest version is v19.03.0.
@@ -82,7 +124,7 @@ https://download.docker.com/linux/static/stable/x86_64/docker-19.03.0.tgz
82124
the containerd Newest version is v1.2.7
83125
ex:
84126
```shell script
85-
cuisongliu@cuisongliu-PC:~$ go run main.go print --docker false
127+
cuisongliu@cuisongliu-PC:~$ go run main.go print --docker F
86128
https://github.com/containerd/containerd/releases/download/v1.1.0/containerd-1.1.0.linux-amd64.tar.gz
87129
https://github.com/containerd/containerd/releases/download/v1.1.1/containerd-1.1.1.linux-amd64.tar.gz
88130
https://github.com/containerd/containerd/releases/download/v1.1.2/containerd-1.1.2.linux-amd64.tar.gz

install/command/command.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ type stepInterface interface {
1717
Version(host string)
1818
Uninstall(host string)
1919
Print()
20+
2021
//
22+
lib() string
2123
serviceFile() []byte
2224
configFile() []byte
2325
}

install/command/containerd.go

Lines changed: 105 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,51 +17,59 @@ func NewContainerd() stepInterface {
1717

1818
const containerdFileName = "containerd.tgz"
1919

20-
func (d Containerd) SendPackage(host string) {
20+
func (d *Containerd) lib() string {
21+
if Lib == "" {
22+
return "/var/lib/containerd"
23+
} else {
24+
return Lib
25+
}
26+
}
27+
func (d *Containerd) SendPackage(host string) {
2128
SendPackage(host, PkgUrl, containerdFileName)
2229
}
2330

24-
func (d Containerd) Tar(host string) {
31+
func (d *Containerd) Tar(host string) {
2532
cmd := fmt.Sprintf("tar --strip-components=1 -xvzf /root/%s -C /usr/local/bin", containerdFileName)
2633
Cmd(host, cmd)
2734
}
28-
29-
func (d Containerd) Config(host string) {
30-
cmd := "mkdir -p " + Lib
35+
func (d *Containerd) Config(host string) {
36+
cmd := "mkdir -p " + d.lib()
3137
Cmd(host, cmd)
3238
cmd = "mkdir -p /etc/containerd"
3339
Cmd(host, cmd)
34-
cmd = "containerd config default > /etc/containerd/config.toml"
35-
//cmd = "echo \"" + string(d.configFile()) + "\" > /etc/docker/daemon.json"
40+
//cmd = "containerd config default > /etc/containerd/config.toml"
41+
cmd = "echo \"" + string(d.configFile()) + "\" > /etc/containerd/config.toml"
3642
Cmd(host, cmd)
3743
}
3844

39-
func (d Containerd) Enable(host string) {
45+
func (d *Containerd) Enable(host string) {
4046
cmd := "echo \"" + string(d.serviceFile()) + "\" > /usr/lib/systemd/system/containerd.service"
4147
Cmd(host, cmd)
4248
cmd = "systemctl enable containerd.service && systemctl restart containerd.service"
4349
Cmd(host, cmd)
4450
}
4551

46-
func (d Containerd) Version(host string) {
52+
func (d *Containerd) Version(host string) {
4753
cmd := "containerd --version"
4854
Cmd(host, cmd)
55+
logger.Warn("pull docker hub command. ex: ctr images pull docker.io/library/alpine:3.8")
56+
logger.Warn("pull http registry command. ex: ctr images pull 10.0.45.222/library/alpine:3.8 --plain-http")
4957
}
5058

51-
func (d Containerd) Uninstall(host string) {
59+
func (d *Containerd) Uninstall(host string) {
5260
cmd := "systemctl stop containerd.service && systemctl disable containerd.service"
5361
Cmd(host, cmd)
5462
cmd = "rm -rf /usr/local/bin/ctr && rm -rf /usr/local/bin/containerd* "
5563
Cmd(host, cmd)
5664
cmd = "rm -rf /var/lib/containerd && rm -rf /etc/containerd/* "
5765
Cmd(host, cmd)
58-
if Lib != "" {
59-
cmd = "rm -rf " + Lib
66+
if d.lib() != "" {
67+
cmd = "rm -rf " + d.lib()
6068
Cmd(host, cmd)
6169
}
6270
}
6371

64-
func (d Containerd) serviceFile() []byte {
72+
func (d *Containerd) serviceFile() []byte {
6573
var templateText = string(`[Unit]
6674
Description=containerd container runtime
6775
Documentation=https://containerd.io
@@ -83,32 +91,101 @@ WantedBy=multi-user.target
8391
`)
8492
return []byte(templateText)
8593
}
86-
func (d Containerd) configFile() []byte {
87-
var templateText = string(`{
88-
\"registry-mirrors\": [
89-
\"http://373a6594.m.daocloud.io\"
90-
],
91-
{{if len .DOCKER_REGISTRY}}
92-
\"insecure-registries\":
93-
[{{range $i,$v :=.DOCKER_REGISTRY}}{{if eq $i 0}}\"{{$v}}\"{{else}},\"{{$v}}\"{{end}}{{end}}],
94-
{{end}}
95-
\"graph\":\"{{.DOCKER_LIB}}\"
96-
}`)
94+
func (d *Containerd) configFile() []byte {
95+
var templateText = string(`root = \"{{.CONTAINERD_LIB}}\"
96+
state = \"/run/containerd\"
97+
oom_score = 0
98+
99+
[grpc]
100+
address = \"/run/containerd/containerd.sock\"
101+
uid = 0
102+
gid = 0
103+
max_recv_message_size = 16777216
104+
max_send_message_size = 16777216
105+
106+
[debug]
107+
address = \"\"
108+
uid = 0
109+
gid = 0
110+
level = \"\"
111+
112+
[metrics]
113+
address = \"\"
114+
grpc_histogram = false
115+
116+
[cgroup]
117+
path = \"\"
118+
119+
[plugins]
120+
[plugins.cgroups]
121+
no_prometheus = false
122+
[plugins.cri]
123+
stream_server_address = \"127.0.0.1\"
124+
stream_server_port = \"0\"
125+
enable_selinux = false
126+
sandbox_image = \"k8s.gcr.io/pause:3.1\"
127+
stats_collect_period = 10
128+
systemd_cgroup = false
129+
enable_tls_streaming = false
130+
max_container_log_line_size = 16384
131+
[plugins.cri.containerd]
132+
snapshotter = \"overlayfs\"
133+
no_pivot = false
134+
[plugins.cri.containerd.default_runtime]
135+
runtime_type = \"io.containerd.runtime.v1.linux\"
136+
runtime_engine = \"\"
137+
runtime_root = \"\"
138+
[plugins.cri.containerd.untrusted_workload_runtime]
139+
runtime_type = \"\"
140+
runtime_engine = \"\"
141+
runtime_root = \"\"
142+
[plugins.cri.cni]
143+
bin_dir = \"/opt/cni/bin\"
144+
conf_dir = \"/etc/cni/net.d\"
145+
conf_template = \"\"
146+
[plugins.cri.registry]
147+
[plugins.cri.registry.mirrors]
148+
[plugins.cri.registry.mirrors.\"docker.io\"]
149+
endpoint = [\"https://registry-1.docker.io\"]
150+
{{range .CONTAINERD_REGISTRY -}}[plugins.cri.registry.mirrors.\"{{.}}\"]
151+
endpoint = [\"{{.}}\"]
152+
{{end -}}
153+
[plugins.cri.x509_key_pair_streaming]
154+
tls_cert_file = \"\"
155+
tls_key_file = \"\"
156+
[plugins.diff-service]
157+
default = [\"walking\"]
158+
[plugins.linux]
159+
shim = \"containerd-shim\"
160+
runtime = \"runc\"
161+
runtime_root = \"\"
162+
no_shim = false
163+
shim_debug = false
164+
[plugins.opt]
165+
path = \"/opt/containerd\"
166+
[plugins.restart]
167+
interval = \"10s\"
168+
[plugins.scheduler]
169+
pause_threshold = 0.02
170+
deletion_threshold = 0
171+
mutation_threshold = 100
172+
schedule_delay = \"0s\"
173+
startup_delay = \"100ms\"
174+
`)
97175
tmpl, err := template.New("text").Parse(templateText)
98176
if err != nil {
99177
logger.Error("template parse failed:", err)
100178
panic(1)
101179
}
102180
var envMap = make(map[string]interface{})
103-
envMap["DOCKER_REGISTRY"] = RegistryArr
104-
envMap["DOCKER_LIB"] = Lib
105-
envMap["ZERO"] = 0
181+
envMap["CONTAINERD_REGISTRY"] = RegistryArr
182+
envMap["CONTAINERD_LIB"] = d.lib()
106183
var buffer bytes.Buffer
107184
_ = tmpl.Execute(&buffer, envMap)
108185
return buffer.Bytes()
109186
}
110187

111-
func (d Containerd) Print() {
188+
func (d *Containerd) Print() {
112189
urlPrefix := "https://github.com/containerd/containerd/releases/download/v%s/containerd-%s.linux-amd64.tar.gz"
113190
versions := []string{
114191
"1.1.0",

install/command/docker.go

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,50 +17,58 @@ func NewDocker() stepInterface {
1717

1818
const dockerFileName = "docker.tgz"
1919

20-
func (d Docker) SendPackage(host string) {
20+
func (d *Docker) lib() string {
21+
if Lib == "" {
22+
return "/var/lib/docker"
23+
} else {
24+
return Lib
25+
}
26+
}
27+
28+
func (d *Docker) SendPackage(host string) {
2129
SendPackage(host, PkgUrl, dockerFileName)
2230
}
2331

24-
func (d Docker) Tar(host string) {
32+
func (d *Docker) Tar(host string) {
2533
cmd := fmt.Sprintf("tar --strip-components=1 -xvzf /root/%s -C /usr/local/bin", dockerFileName)
2634
Cmd(host, cmd)
2735
}
2836

29-
func (d Docker) Config(host string) {
30-
cmd := "mkdir -p " + Lib
37+
func (d *Docker) Config(host string) {
38+
cmd := "mkdir -p " + d.lib()
3139
Cmd(host, cmd)
3240
cmd = "mkdir -p /etc/docker"
3341
Cmd(host, cmd)
3442
cmd = "echo \"" + string(d.configFile()) + "\" > /etc/docker/daemon.json"
3543
Cmd(host, cmd)
3644
}
3745

38-
func (d Docker) Enable(host string) {
46+
func (d *Docker) Enable(host string) {
3947
cmd := "echo \"" + string(d.serviceFile()) + "\" > /usr/lib/systemd/system/docker.service"
4048
Cmd(host, cmd)
4149
cmd = "systemctl enable docker.service && systemctl restart docker.service"
4250
Cmd(host, cmd)
4351
}
4452

45-
func (d Docker) Version(host string) {
53+
func (d *Docker) Version(host string) {
4654
cmd := "docker version"
4755
Cmd(host, cmd)
4856
}
4957

50-
func (d Docker) Uninstall(host string) {
58+
func (d *Docker) Uninstall(host string) {
5159
cmd := "systemctl stop docker.service && systemctl disable docker.service"
5260
Cmd(host, cmd)
5361
cmd = "rm -rf /usr/local/bin/runc && rm -rf /usr/local/bin/ctr && rm -rf /usr/local/bin/containerd* "
5462
Cmd(host, cmd)
5563
cmd = "rm -rf /usr/local/bin/docker* && rm -rf /var/lib/docker && rm -rf /etc/docker/* "
5664
Cmd(host, cmd)
57-
if Lib != "" {
58-
cmd = "rm -rf " + Lib
65+
if d.lib() != "" {
66+
cmd = "rm -rf " + d.lib()
5967
Cmd(host, cmd)
6068
}
6169
}
6270

63-
func (d Docker) serviceFile() []byte {
71+
func (d *Docker) serviceFile() []byte {
6472
var templateText = string(`[Unit]
6573
Description=Docker Application Container Engine
6674
Documentation=https://docs.docker.com
@@ -82,7 +90,7 @@ WantedBy=multi-user.target
8290
`)
8391
return []byte(templateText)
8492
}
85-
func (d Docker) configFile() []byte {
93+
func (d *Docker) configFile() []byte {
8694
var templateText = string(`{
8795
\"registry-mirrors\": [
8896
\"http://373a6594.m.daocloud.io\"
@@ -100,14 +108,13 @@ func (d Docker) configFile() []byte {
100108
}
101109
var envMap = make(map[string]interface{})
102110
envMap["DOCKER_REGISTRY"] = RegistryArr
103-
envMap["DOCKER_LIB"] = Lib
104-
envMap["ZERO"] = 0
111+
envMap["DOCKER_LIB"] = d.lib()
105112
var buffer bytes.Buffer
106113
_ = tmpl.Execute(&buffer, envMap)
107114
return buffer.Bytes()
108115
}
109116

110-
func (d Docker) Print() {
117+
func (d *Docker) Print() {
111118
urlPrefix := "https://download.docker.com/linux/static/stable/x86_64/docker-%s.tgz"
112119
versions := []string{
113120
"17.03.0-ce",

0 commit comments

Comments
 (0)