рдбреЗрдЯрд╛ рд╣реИ
-
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)
рддреЛ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд infos рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рд╛:
2016/12/14 17:13:39 error: yaml: unmarshal errors:
line 2: cannot unmarshal !!seq into main.NODE
@vanloswang рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?
@ alexforever86 рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХрднреА рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛?
рдХреБрдЫ рдШрдВрдЯреЛрдВ рддрдХ рдЗрд╕рд╕реЗ рдЬреВрдЭрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ 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)
рдордирд╛рдЗрдП рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛ!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреБрдЫ рдШрдВрдЯреЛрдВ рддрдХ рдЗрд╕рд╕реЗ рдЬреВрдЭрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ 5 рдорд┐рдирдЯ рдмрд╛рдж рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ (рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ!) https://github.com/go-yaml/yaml/issues/101#issuecomment -178792007 рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдереА рдПрдХ рдмрдбрд╝реА рдорджрджред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ Ansible рдХреА
requirements.yaml
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдереА, рдЬреЛ рд╕рд╣реА рдереА:
рд▓реЗрдХрд┐рди рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЕрдиреБрдХреНрд░рдо рдХреЛ рдареАрдХ рд╕реЗ рдЕрдирдорд░реНрд╢рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░
cannot unmarshal !!seq
рддреНрд░реБрдЯрд┐ рдХреЛ рд╣рд▓ рдХрд░реЗрдВ) рдореБрдЭреЗ рдЗрд╕реЗvar out []AnsibleSource
рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдирдорд░реНрд╢рд▓ рдХрд░рдирд╛ рдкрдбрд╝рд╛ :рдордирд╛рдЗрдП рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛ!