구성 및 환경 데이터 분리Separating configuration and environment data

In this article

구성 데이터를 사용하여 구성 자체에서 DSC 구성에 사용된 데이터를 분리하는 것이 유용할 수 있습니다.It can be useful to separate the data used in a DSC configuration from the configuration itself by using configuration data.이 작업을 수행하면 여러 환경에 단일 구성을 사용할 수 있습니다.By doing this, you can use a single configuration for multiple environments.

예를 들어 응용 프로그램을 개발할 경우 한 구성을 개발 및 프로덕션 환경 모두에 사용하고 구성 데이터를 사용하여 각 환경의 데이터를 지정할 수 있습니다.For example, if you are developing an application, you can use one configuration for both development and production environments, and use configuration data to specify data for each environment.

구성 데이터는 무엇입니까?What is configuration data?

구성 데이터는 해시 테이블에서 정의되며 해당 구성을 컴파일할 때 DSC 구성에 전달되는 데이터입니다.Configuration data is data that is defined in a hashtable and passed to a DSC configuration when you compile that configuration.

간단한 예A simple example

간단한 예를 통해 이 과정을 알아보겠습니다.Let's look at a very simple example to see how this works.일부 노드에 IIS가 있고 다른 노드에 Hyper-V가 있도록 하는 단일 구성을 만들려고 합니다.We'll create a single configuration that ensures that IIS is present on some nodes, and that Hyper-V is present on others:

단일 구성을 사용하여 웹 사이트의 개발 환경과 프로덕션 환경을 모두 설정하는 예 전체를 살펴보겠습니다.Let's look at a complete example that uses a single configuration to set up both development and production environments of a website.개발 환경에서는 IIS와 SQL Server가 모두 단일 노드에 설치됩니다.In the development environment, both IIS and SQL Server are installed on a single nodes.프로덕션 환경에서는 IIS와 SQL Server가 별도 노드에 설치됩니다.In the production environment, IIS and SQL Server are installed on separate nodes.구성 데이터 .psd1 파일을 사용하여 서로 다른 두 환경의 데이터를 지정하겠습니다.We'll use a configuration data .psd1 file to specify the data for the two different environments.

구성 데이터 파일Configuration data file

DevProdEnvData.psd1이라는 파일에서 개발 및 프로덕션 환경 데이터를 다음과 같이 정의합니다.We'll define the development and production environment data in a file named DevProdEnvData.psd1 as follows:

구성 스크립트 파일Configuration script file

이제 .ps1 파일에 정의된 구성으로 가서 DevProdEnvData.psd1에 정의된 노드를 역할(MSSQL, Dev 또는 둘 모두)에 따라 필터링하고 적절하게 구성합니다.Now, in the configuration, which is defined in a .ps1 file, we filter the nodes we defined in DevProdEnvData.psd1 by their role (MSSQL, Dev, or both), and configure them accordingly.개발 환경은 SQL Server와 IIS가 모두 한 노드에 있고, 프로덕션 환경은 두 가지가 서로 다른 노드에 있습니다.The development environment has both the SQL Server and IIS on one node, while the production environment has them on two different nodes.SiteContents 속성으로 지정된 것처럼 사이트 내용도 서로 다릅니다.The site contents is also different, as specified by the SiteContents properties.

구성 스크립트의 끝 부분에서 구성을 호출하며(MOF 문서로 컴파일) DevProdEnvData.psd1을 $ConfigurationData 매개 변수로 전달합니다.At the end of the configuration script, we call the configuration (compile it into a MOF document), passing DevProdEnvData.psd1 as the $ConfigurationData parameter.

비노드 데이터 사용Using non-node data

노드와 관련되지 않은 데이터에 대한 추가 키를 ConfigurationData 해시 테이블에 추가할 수 있습니다.You can add additional keys to the ConfigurationData hashtable for data that is not specific to a node.다음 구성은 두 웹 사이트의 존재를 확인합니다.The following configuration ensures the presence of two websites.각 웹 사이트에 대한 데이터는 AllNodes 배열에 정의됩니다.Data for each website are defined in the AllNodes array.Config.xml 파일은 두 웹 사이트 모두에 사용되므로 NonNodeData 이름을 사용하여 추가 키에서 해당 파일을 정의합니다.The file Config.xml is used for both websites, so we define it in an additional key with the name NonNodeData.원하는 만큼 추가 키를 사용할 수 있으며 원하는 이름을 지정할 수 있습니다.Note that you can have as many additional keys as you want, and you can name them anything you want.NonNodeData는 예약어가 아니며, 단지 추가 키 이름을 지정하는 데 사용된 것입니다.NonNodeData is not a reserved word, it is just what we decided to name the additional key.