시작하기 전에 YAML과 JSON을 처음 접했기 때문에 형식 규칙이 분명하지 않다는 것을 설명해야합니다. 권장 파일 형식 (YAML? JSON? 기타?)
나는 펄 스크립트를 작성하려고 해요 (나는 그것이 우리의 모든 서버에 존재하는 알고 있기 때문에 펄.) 다양한 호스트에 대한 여러 네트워크 관련 설정을 업데이트 할. 필자가 선호하는 것은 모든 설정을 단일 파일에두고 스크립트가 실행되는 호스트를 기반으로 구성을 업데이트하는 것입니다.내가 YAML 보았다, 그러나 나는 조금 내가 좋아하는 뭔가를 할 수 없다는 사실에 의해 연기 해요 :
말을하는 것입니다host:
hostname: first
interface: eth0
oldip: 1.2.3.4
newip: 2.3.4.5
oldgw: 1.2.3.1
newgw: 2.3.4.1
interface: eth1
oldip: 1.2.3.4
newip: 2.3.4.5
oldgw: 1.2.3.1
newgw: 2.3.4.1
host:
hostname: second
interface: eth0
oldip: 1.2.3.4
newip: 2.3.4.5
oldgw: 1.2.3.1
newgw: 2.3.4.1
interface: eth1
oldip: 1.2.3.4
newip: 2.3.4.5
oldgw: 1.2.3.1
newgw: 2.3.4.1
, 내가 YAML의 검증이 점을 연결했는데 실패했습니다.
나는 YAML를 들어, 다음 작업을 수행 할 수 있다는 것을 알아 낸 : 불가능 하나 개의 파일에 여러 호스트를 가지고 만들면서
host: "first"
interface1:
name: eth0
oldip: 1.2.3.4
newip: 2.3.4.5
oldgw: 1.2.3.1
newgw: 2.3.4.1
interface2:
name: eth1
oldip: 1.2.3.4
newip: 2.3.4.5
oldgw: 1.2.3.1
newgw: 2.3.4.1
이하지만, 바람직보다 적습니다. 나는 이것을 시도 할 때 내가 사용했던 온라인 유효성 검사기로부터 오류가 계속 발생한다는 사실을 근거로하고있다.
JSON을 사용하여 살펴 보았지만 그 중 일부 규칙을 알지 못합니다. 나는 다음과 같은 작동하지 않는 것을 알고있다 :
{
"host": "first",
"interface1": {
"newip": "2.3.4.5",
"oldip": "1.2.3.4",
"oldgw": "1.2.3.1",
"name": "eth0",
"newgw": "2.3.4.1"
},
"interface2": {
"newip": "2.3.4.5",
"oldip": "1.2.3.4",
"oldgw": "1.2.3.1",
"name": "eth1",
"newgw": "2.3.4.1"
}
}
{
"host": "second",
"interface1": {
"newip": "2.3.4.5",
"oldip": "1.2.3.4",
"oldgw": "1.2.3.1",
"name": "eth0",
"newgw": "2.3.4.1"
},
"interface2": {
"newip": "2.3.4.5",
"oldip": "1.2.3.4",
"oldgw": "1.2.3.1",
"name": "eth1",
"newgw": "2.3.4.1"
}
}
나는 그 날은 구문 분석 할 수있는 호스트와 하나의 파일에 자신의 모든 정보를 저장할 수 있습니다 사용할 수있는 형식이 있습니까?
YAML 또는 JSON 중 어느 하나가 적합하다면 무엇을 잘못하고 있습니까?
인간이 올바른 YAML 및 JSON을 쓰는 것이 읽기보다 어렵습니다. Perl로 초기 데이터 구조를 만들고 적어도 Perl을 사용하여 파일에 파일을 작성해야합니다. 그런 다음 용감한 사람이라면 손으로 파일을 조금만 변경할 수 있습니다. – mob