golang 从 Vault 文件中解封 yaml

通过下面的代码,我可以从 Ansible 库文件中获取 yaml,结果如下:


---

dbtype: redis

vsad: go0v


当试图取消封印YAML时,我只得到:


map[string]string(nil)

我的目标就是取消文件预检,编辑数据,重新存储文件。


如何实现解封以便编辑数据?


package main


import (

    "fmt"

    "github.com/sosedoff/ansible-vault-go"

    "gopkg.in/yaml.v2"

)


type Props struct {

    values map[string]string

}

func main() {

    str, err := vault.DecryptFile("/tmp/tmpvlt", `.NunY4hb33zWx!)`)

    if err != nil {

        panic(err)

    }

    props := Props{}

    err2 := yaml.Unmarshal([]byte(str), &props)

    if err2 != nil {

        panic(err2)

    }

    fmt.Println(str)

    fmt.Printf("%#v\n",props.values)


}


MMMHUHU
浏览 71回答 1
1回答

海绵宝宝撒

您想执行任何操作var props map[string]string或err2 := yaml.Unmarshal([]byte(str), &props.values)在您当前的代码中,取消封口程序无法访问私有字段,即使您通过将其重命名为 来将其公开,也不会填充它,因为您的 YAML 没有名为 的顶级键。valuesValuesvalues
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go