๋ฐ์ดํฐ๋
-
ip: 192.168.1.1
role: master
-
ip: 192.168.1.2
role: node
-
ip: 192.168.1.3
role: node
๊ตฌ์กฐ์ฒด๋
type NODE struct {
node []struct {
ipaddr string
role string
} `yaml:",flow"`
}
ํ์ฑ โโ์ฝ๋๋
n := NODE{}
err := yaml.Unmarshal([]byte(data), &n)
if err != nil {
log.Fatalf("error: %v", err)
}
fmt.Printf("--- t:\n%v\n\n", n)
๋ค์ ์ ๋ณด๋ก ์คํจํ์ต๋๋ค.
2016/12/14 17:13:39 error: yaml: unmarshal errors:
line 2: cannot unmarshal !!seq into main.NODE
@vanloswang ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ป๊ฒ ํด๊ฒฐํ์ จ๋์?
@alexforever86 ํด๊ฒฐ์ฑ ์ ์ฐพ์ ์ ์ด ์์ต๋๊น?
๋ช ์๊ฐ ๋์ ์ด๊ฒ์ผ๋ก ๊ณ ์ฌํ ํ ์ด ์ค๋ ๋๋ฅผ pingํ ํ 5๋ถ ํ์ ์์๋์ต๋๋ค(์ฃ์กํฉ๋๋ค!) https://github.com/go-yaml/yaml/issues/101#issuecomment -178792007์ ๋๊ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํฐ ๋์.
์ ๊ฒฝ์ฐ์๋ ๋ค์๊ณผ ๊ฐ์ Ansible์ requirements.yaml
ํ์ผ์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ค๊ณ ํ์ต๋๋ค.
---
- src: franklinkim.php5-newrelic
- src: geerlingguy.composer
- src: geerlingguy.java
- src: geerlingguy.nginx
- src: geerlingguy.nodejs
- src: geerlingguy.php
- src: geerlingguy.php-versions
- src: geerlingguy.rabbitmq
- src: geerlingguy.solr
- src: newrelic.newrelic-infra
- name: mycustomrole
src: [email protected]:foo/bar.git
scm: git
version: master
- src: https://github.com/nickhammond/ansible-logrotate
name: nickhammond.logrotate
๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ฒด๊ฐ ์์๋๋ฐ ์ ํํ์ต๋๋ค.
type AnsibleSource struct {
Source string `yaml:"src"`
Name *string `yaml:"name,omitempty"`
Type *string `yaml:"scm,omitempty"`
Version *string `yaml:"version,omitempty"`
}
๊ทธ๋ฌ๋ ์ต์์ ์ํ์ค๋ฅผ ์ ๋๋ก ์ ๋ ฌ ํด์ ํ๊ณ cannot unmarshal !!seq
์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด var out []AnsibleSource
๋ฅผ ํตํด ์ ๋ ฌ ํด์ ํด์ผ ํ์ต๋๋ค .
source, err := ioutil.ReadFile(ansibleRequirements.Path)
if err != nil {
return
}
var out []AnsibleSource
err = yaml.Unmarshal(source, &out)
if err != nil {
return
}
fmt.Println(requirements)
์ด๊ฒ์ด ๋ค๋ฅธ ์ฌ๋์ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ช ์๊ฐ ๋์ ์ด๊ฒ์ผ๋ก ๊ณ ์ฌํ ํ ์ด ์ค๋ ๋๋ฅผ pingํ ํ 5๋ถ ํ์ ์์๋์ต๋๋ค(์ฃ์กํฉ๋๋ค!) https://github.com/go-yaml/yaml/issues/101#issuecomment -178792007์ ๋๊ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํฐ ๋์.
์ ๊ฒฝ์ฐ์๋ ๋ค์๊ณผ ๊ฐ์ Ansible์
requirements.yaml
ํ์ผ์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ค๊ณ ํ์ต๋๋ค.๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ฒด๊ฐ ์์๋๋ฐ ์ ํํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ต์์ ์ํ์ค๋ฅผ ์ ๋๋ก ์ ๋ ฌ ํด์ ํ๊ณ
cannot unmarshal !!seq
์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ดvar out []AnsibleSource
๋ฅผ ํตํด ์ ๋ ฌ ํด์ ํด์ผ ํ์ต๋๋ค .์ด๊ฒ์ด ๋ค๋ฅธ ์ฌ๋์ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!