PowerShell Desired State Configuration�iDSC�j�Ƃ́i�O�ҁj�FPowerShell DSC�Ŏn�߂�Windows�C���t���X�g���N�`���������̊�{�i1/2 �y�[�W�j

Windows OS�̐ݒ��\����ύX����ꍇ�AGUI�̊Ǘ��c�[�����g���̂���ʓI�ł���B�����䐔������������A�\���ύX��ȑO�̍\���ւ̕����Ȃǂ��p�ɂ������肷���GUI�ł͔��ɖʓ|�����A�ԈႢ�����₷���Ȃ�B����ȏꍇ��PowerShell DSC���g���ăC���t���\�z��Ƃ�����������Ƃ悢�B

» 2014�N05��22�� 17��46�� ���J
PowerShell DSCŎn߂WindowsCtXgN`̊{
Windows Server Insider


uPowerShell DSCŎn߂WindowsCtXgN`̊{ṽCfbNX

�A�ږڎ�

�@�W����GUI�Ǘ��c�[��������Ă���Windows Server�ł́A���܂��܂Ȑݒ�E�\�z��Ƃ�GUI��ʂ��Ď�y�Ɏ��s�ł���B���̔��ʁA�蓮��Ƃ��K�v�Ȃ��߁A�ݒ�E�\�z�Ɏ��Ԃ�����������ݒ�����ɖ߂��̂Ɏ�Ԃ��|��������A����ɂ͕����̃T�[�o�[�𓯈�̍\���ɂ��낦��̂ɋ�J�����肵�������B

�@���̂悤�ȃT�[�o�[�̍\���Ǘ���C���t���X�g���N�`���\�z�������悭���Ȃ��ׂ��A���܂��܂ȃ\�t�g�E�F�A�c�[�����񋟂���Ă����B�������A����܂�Windows Server�̐��E�ł́A�L����������g���������������A�Ƃ��������R����A���������c�[�����L�����p����Ă���Ƃ͂����Ȃ��̂����󂾁B

�@����Ȓ��AWindows Server 2012 R2�Ɠ������Ƀ����[�X���ꂽ�uPowerShell Desired State Configuration�iDSC�j�v���\���Ǘ��̎������c�[���Ƃ��Ē��ڂ��W�߂Ă���B�ڍׂ͌�قǐ������邪�AWindows OS�̕W���c�[���ɂȂ�Ɩڂ���Ă��邱�ƁA�����āiWindows OS�̃��C�Z���X������΁j�����ŗ��p�ł��邱�Ƃ��A���̗��R�Ƃ��ċ������邾�낤�B

�@�{�e�ł�Windows Server�̊Ǘ��҂�ΏۂɁA����PowerShell DSC��Windows�C���t���̍\���Ǘ�������������Ƃ����O��ŁA���̊�{�I�ȊT�O������A�Z�b�g�A�b�v���@�A�����Ċ�{�I�Ȏg�����܂ʼn������B����̑O�҂ł͊T�v�ƃZ�b�g�A�b�v�ɂ‚��Đ������A��҂ł͎��ۂ�PowerShell DSC�̗��p����Љ��B�܂�Linux�̐��E�Œ����ȍ\���Ǘ��c�[���uChef�v�uPuppet�v��PowerShell DSC�Ƃ̊֌W���r�ɂ‚��Ă��ȒP�ɐG���B

PowerShell DSC�Ƃ�?

�@DSC�́A�����z�X�g�A���z�}�V���A�I���v���~�X�A�N���E�h�Ƃ��������܂��܂ȋK�͂�Windows�C���t���‹��ɂ����āAWindows�T�[�o�[���g���u����ׂ���ԁiDesired State�j�ɍ\���iConfiguration�j�����v���߂̎������v���b�g�t�H�[�����B

�@DSC���g�����ƂŁA�Ⴆ��Windows�̃��[�J�����[�U�[��O���[�v�̍쐬��v���Z�X�^�T�[�r�X�̑���A�‹��ϐ��^���W�X�g���^�t�@�C���̑����p�b�P�[�W�̃C���X�g�[���ȂǁA����ɂ킽��\����DSC�̃R�[�h�ŊǗ��”\�ƂȂ�BDSC�ɂ́APowerShell�ŋL�q���ꂽ�uResource�i���\�[�X�j�v�ƌĂ΂��@�\���g������d�g�݂��p�ӂ���Ă���A�ړI�ɉ�����Resource�𓱓����邱�ƂŊȒP�ɍ\���Ώۂ�lj��ł���B���[�I�ɂ����ƁAResource��DSC�̑�����`�������̂Ƃ�����B�W���ł�12��Resource���p�ӂ���Ă���B

���O �T�v
Archive Resource �w�肵���p�X�Ɉ��k�i.zip�j�t�@�C���̉𓀂��s��
Environment Resource �‹��ϐ����Ǘ�����
File Resource �t�@�C����f�B���N�g�����Ǘ�����
Group Resource ���[�J���O���[�v���Ǘ�����
Log Resource �R���t�B�O���[�V�������b�Z�[�W�̃��O
Package Resource Windows�C���X�g�[���[��Setup.exe�Ȃǂ̃p�b�P�[�W���C���X�g�[��������A�Ǘ������肷��
Process Resource Windows�v���Z�X���Ǘ�����
Registry Resource ���W�X�g���L�[��l���Ǘ�����
Role Resource Windows�̋@�\�Ɩ������Ǘ�����
Script Resource Windows PowerShell�X�N���v�g�u���b�N�����s����
Service Resource �T�[�r�X���Ǘ�����
User Resource ���[�J�����[�U�[���Ǘ�����
PowerShell DSC�̕W��Resource

�@�W��Resource�ȊO�ɂ��AMicrosoft PowerShell�`�[������DSC�̃����[�X��A3��ɂ킽���Ēlj���Resource�����J����Ă��邵�A����PowerShell�R�~���j�e�B���Ǝ���Resource���J���A���J���Ă���B�������K�v������Ύ�����”\���B

PowerShell DSC�ʼn”\�ɂȂ邱��

�@DSC�̖ړI�́A�Ǘ��҂����N���Ƃő��삷�邱�Ƃɂ���āA�T�[�o�[�̐ݒ肪�قȂ��ԁiConfiguration Drift�j�ɂȂ邱�Ƃ�h���A�T�[�o�[�\�����R�[�h�ɂ��邱�ƂŎ��������������邱�Ƃł���B

�@������DSC�ɋ��߂���d�v�ȗv�f�Ƃ��āA����3�‚���������B

  • Infrastructure as Code
  • �錾�I�\���iDeclarative Syntax�j
  • �p�����i�ׂ������j

�@�ȉ��A���ԂɌ��Ă������B

Infrastructure as Code

�@DSC�ł̓C���t���ݒ���ǂ̂悤�ɍ\�z�A�ێ�����ׂ�����PowerShell�ŋL�q���āA�\�[�X�R�[�h�Ɠ��l�Ɉ�����B���̂悤�ȊT�O���uInfrastructure as Code�v�Ƃ����B�菇�����������������N�����Ď���Ƃ�l�̎��ƂɔC����̂ł͂Ȃ��APowerShell�ŃC���t���\�����`���Ă����΁A���s��Ƃ�DSC�ɔC���Ď������ł���B���Z�ȃC���t���G���W�j�A�ɂƂ��Ă͔��ɖ��͓I���낤�B

�@�C���t���‹����R�[�h�Ǘ��ł���Ƃ������Ƃ́A�ύX���e���A�v���P�[�V�����Ɠ��l��Git�Ȃǂ̃o�[�W�����Ǘ��V�X�e���ŕێ��ł��邱�Ƃ��Ӗ�����B�C���t���‹����o�[�W�����Ǘ��ł���Ȃ�A�ȑO�̃T�[�o�[�̏�Ԃ֖߂����Ƃ��ȒP�ɂł���悤�ɂȂ�B�A�v���P�[�V�����Ɠ������x�ŃC���t�����̕ύX�����[���A�E�g�ł��邽�߁A�{�Ԋ‹��ւ̓K�p���Ԃ�Z�k���A���̑��̖��p�Ȏ��Ԃ��팸���āA�ύX�ɋ����C���t���‹�����ɂ��邱�Ƃ��ł���B���̈Ӌ`�͔��ɑ傫���B�N���E�h���͂��߂Ƃ��āA�p�ɂɃT�[�o�[�\�����ω�����‹��ł́A�܂��Ɍ������Ȃ��B

�錾�I�\���iDeclarative Syntax�j

�@DSC��Resource�ɂ́A����Ώۂ̃C���t���̒�`��PowerShell�̕��@�ŋL�q����Ă���B����Resource���g���āA����ׂ��p�ɃC���t�����\�z�E�ێ����邽�߂̒�`���L�q�����X�N���v�g�t�@�C�����uConfiguration�i�R���t�B�O���[�V�����j�v�ƌĂԁBDSC�ł�Configuration���u�錾�I�\���iDeclarative Syntax�j�v�ŋL�q����B

�@�錾�I�\���������炷���ʂ��l���Ă݂悤�B�Ⴆ�Ώ]���̃o�b�`�t�@�C����PowerShell�X�N���v�g�Ŏ��������悤�Ƃ���ƁA�u�ǂ̂悤�ɍ\�����邩�v���菇���ƂɋL�q���邱�ƂɂȂ�A�ώG�ȏ�������╪�򂪑����Ȃ��Ă��܂��B�����錾�I�\����p����Configuration�ł́u�������������v�������L�q����΂悢�̂ŁA�V���v���ŕ�����₷���Ȃ邱�Ƃ����҂ł���B

�@��Ƃ��āA�uIIS�̃C���X�g�[�����s���v�󋵂��l���Ă݂悤�B

�@PowerShell�ɂ��]���̃R�[�h�T���v���͎��̒ʂ肾�B

Import-Module ServerManager
  
# Web Server�iIIS�j�̋@�\�����C���X�g�[�����ǂ����m�F���Ă���A���C���X�g�[���Ȃ�IIS���C���X�g�[��
If (-not (Get-WindowsFeature "Web-Server").Installed)
{
    try
    {
        Add-WindowsFeature Web-Server -IncludeManagementTools -ErrorAction Stop
    }
    catch [Exception]
    {
        Write-Error $_
    }
}



�@������ADSC�œ������ꂽConfiguration�L�[���[�h���g���Đ錾�I�\���ŋL�q����Ǝ��̂悤�ɂȂ�B

Configuration IISInstall
{
    Node localhost
    {
        WindowsFeature IIS
        {
            Ensure               = "Present"
            Name                 = "Web-Server"
            IncludeAllSubFeature = $true
        }  
    }
}



�@���������낤���B�ulocalhost�ɁAWindowsFeature�iWindows�̋@�\�j��Web-Server�iIIS�j��Present�i���݁j���Ă��Ăق����v�Ƃ����L�q�ɂȂ��Ă���B�錾�I�L�q�̕����ǂ݂₷���Ȃ����Ɗ����Ă���������̂ł͂Ȃ����낤���B

�@����1�—�������Ă������B�ȉ��́AIIS�ȊO�ɂ��AASP.NET�̃C���X�g�[������Web�T�C�g�̐ݒ�܂ōs���Ⴞ�B

Configuration WebSiteConfigInstall
{
    Import-DscResource -ModuleName cWebAdministration
    Node WebServer01
    {
        WindowsFeature IIS
        {
            Ensure               = "Present"
            Name                 = "Web-Server"
            IncludeAllSubFeature = $true
        }
  
        WindowsFeature ASP
        {
            Ensure               = "Present"
            Name                 = "Web-Asp-Net45"
        }

        File DirectoryWebSite
        {
            Ensure               = "Present"
            DestinationPath      = "C:\inetpub\DSCServer"
            Type                 = "Directory"
            DependsOn            = "[WindowsFeature]IIS"
        }

        cWebAppPool WebAppPool
        {
            Ensure               = "Present"
            Name                 = "DSCServer"
            State                = "Started"
        }

        cWebSite WebSiteDSCServer
        {
            Ensure               = "Present"
            Name                 = "DSCServer"
            State                = "Started"
            BindingInfo          = SAMPLE_cWebBindingInformation 
                                     {
                                         Protocol              = "HTTP"
                                         Port                  = 80 
                                         HostName              = "DSCServer"
                                     }
            PhysicalPath         = "C:\inetpub\DSCServer"
            DependsOn            = "[WindowsFeature]IIS"
            ApplicationPool      = "DSCServer"
        }
    }
}



�@��قǂ̗�Ɣ�ׂ�ƁAWeb�T�C�g���쐬���邽�߂̋L�q���lj�����Ă���B�t�H���_�[�̑��݂�Web�T�C�g�̐ݒ��錾����ۂɂ��AWindows�̋@�\��ݒ肷��ۂƂقڕς��Ȃ��錾�\���ɂȂ��Ă��邱�Ƃ�������B

�p�����i�ׂ������j

�@3�–ڂ̑厖�ȗv�f�Ƃ��āADSC�́u�p�����i�ׂ������j�v��S�ۂ���B�p�����Ƃ́A�u1�x�s���Ă�������s���Ă��A�������ʂɂȂ��v�Ƃ����T�O���B��̃R�[�h�͉��x���s���Ă�IIS���C���X�g�[�����ꂽ��ԂɎ�������B���s���邽�тɃC���X�g�[�����J��Ԃ���邱�Ƃ͂Ȃ����A���łɃC���X�g�[�����Ă��邩��Ƃ����ăG���[�ɂȂ邱�Ƃ��Ȃ��B�����I�ȍ\���̓K�p���”\�ɂȂ������A�{���Ɂu����ׂ��iDesired State�j�\���iConfiguration�j�v�ɂȂ������ǂ������m�F���邱�Ƃ͔ς킵�����A�p�������S�ۂ���Ă���Ύ������ł��邾�낤�B

�@�������A������DSC�̓���͙p�������ۏ؂���Ă��邪�AResource��Configuration�̏������ɂ���Ă͒S�ۂ���Ȃ����Ƃ�����BResource�����삷�鎞�́A�p�������ۏ؂����悤�Ɏ����Ńv���O�����R�[�h����荞�ޕK�v������B

DSC�̍\���\�\�v�b�V���^�ƃv���^

�@���́ADSC���C���t���ɓK�p�����ۂ̃V�X�e���\�������Ă݂悤�B��{�I�ɂ́ADSC���Ǘ����邽�߂̃}�V���iDSC�T�[�o�[�j�ƁAResource��K�p����ΏۂƂȂ�N���C�A���g�}�V���i�m�[�h�j����Ȃ�B

�@DSC�ɂ́A�ǂ̂悤��Resource��K�p���邩�ɂ����2��ނ̌`��������B

�@1�‚��u�v�b�V���^�v���B���̕��@�ł́ADSC�T�[�o�[���e�m�[�h�ɑ΂��Ė₢���킹�ăm�[�h���\�z���Ă����B���ݒ��K�p���邩�哱���������Ă���̂�DSC�T�[�o�[���ł���B

vbV`̍\f �v�b�V���^�̍\�����f����
�v�b�V���^�ł́ADSC�T�[�o�[����m�[�h�ɖ₢���킹�ăC���t���‹����\�z����B

�@����1�‚̍\�����u�v���^�v���B���̕��@�ł́A�e�m�[�h��DSC�T�[�o�[�ɖ₢���킹�邱�ƂŃm�[�h���g���\�z���Ă����B���ݒ��K�p���邩�哱���������Ă���̂͊e�m�[�h�ł���A�m�[�h��DSC�T�[�o�[�ɑ΂��āu����ׂ��\���v���ω����ĂȂ����ǂ��������I�Ɋm�F����B

v`̍\f �v���^�̍\�����f����
�v���^�ł́A�m�[�h����DSC�T�[�o�[�ɖ₢���킹�ăC���t���‹����\�z����B�Ȃ��A�m�[�h����̖₢���킹�ɉ����邽�߁ADSC�T�[�o�[��ɂ�IIS��OData EndPoint�Ȃǂ�p�ӂ��Ă����K�v������B

�@�v�b�V���^�̓v���^�ɔ�ׂāuIIS�v��uOData EndPoint�v�̍\�z���s�v�ŁA�C�ӂ̃^�C�~���O��Configuration��z�z�”\�Ȃ̂ŁA��������DSC�������ɂ͂����Â����B�����DSC�T�[�o�[�̓m�[�h�����ݑa�ʉ”\���ǂ�����Ԃ�m���Ă����Ȃ��Ɓu����ׂ��\���v��K�p�ł��邩������Ȃ��B

�@����ŁA�v���^�̓v�b�V���^�ɔ�ׂč\�z�ɏ������K�v���B�������m�[�h�͐ݒ肳�ꂽ�^�X�N�X�P�W���[���Ɋ�Â��Ē���I�Ɂu����ׂ��\���v��DSC�ɖ₢���킹�邽�߁ADSC�T�[�o�[�̓m�[�h�̏�Ԃ��C�ɂ���K�v���Ȃ��A�m�[�h�Ԃ̘A�g���Ƃ�₷���B

DSC��Chef��Puppet�Ƃ̈Ⴂ

�@���āAWindows�ɂ�����DSC���T�[�o�[�\���Ǘ��̗B��̎�i���H �Ƃ����Ƃ����ł͂Ȃ��B�Ⴆ��Linux�V�X�e���ł悭�m���Ă���uChef�v��uPuppet�v�Ƃ����\���Ǘ��c�[���́A���͈ȑO����Windows�V�X�e���ɂ��K�p�”\�������B

�@2014�N4��2�`3���ɊJ�Â��ꂽMicrosoft�̊J���Ҍ����J���t�@�����X�uBuild2014�v�ŁAMicrosoft Azure�̉��z�}�V�����W����Chef��Puppet�ɑΉ��������Ƃ����\���ꂽ�B���\�ł́AChef�́uChef Client�v�ɂ�����PowerShell���l�C�e�B�u�ŃT�|�[�g���A�����ł�DSC�����p���Ă���B��莩�R��Windows�ł�Chef�����p�ł���悤�ɂ��Ă���̂��B

�@�ł�DSC��Chef��Puppet�ł͉����Ⴄ�̂��B�ő�̈Ⴂ�́AChef�ɂ�����Ruby�Ȃǂ̒lj��A�v���P�[�V�����̃C���X�g�[����DSC�ł͕s�v�ł��邱�Ƃ��B����́ADSC��Resource���g���āA�ǂ̂悤�ɃC���t�����\���A���s���邩��Windows�ɕW�����ڂ��ꂽPowerShell�ŋL�q�”\�����炾�B���l�ɁA�m�[�h�ɂ��G�[�W�F���g�\�t�g�E�F�A���C���X�g�[������K�v���Ȃ��B�‹��ɂ���ẮA�C���X�g�[������\�t�g�E�F�A�ɐ���������ꍇ�����邾�낤�B���̏ꍇ�AChef�ł�Ruby���K�v�Ȃ̂ɑ΂��āA�lj��A�v���P�[�V���������邱�ƂȂ�PowerShell�̂悤��Windows�W���R���|�[�l���g�����ŗ��p�”\��DSC�ɂ��\���Ǘ��͗L�p���낤�B

�@����A���ʂ��Ă���_������BDSC��Chef�Ɣ�ׂĂ݂��B

  • DSC�ɂ�����uResource�v�́A�C���[�W�Ƃ��Ă�Chef�̃N�b�N�u�b�N�ɋ߂�
  • DSC�ɂ�����uConfiguration�v�AChef�ł���Recipe�ɑ�������
  • �p������S�ۂ��Ă��邱�Ƃ�AResource�̎��쎞�əp������ۏ؂ł���悤�ɍ�荞�ޕK�v������̂́AChef�Ɠ���
  • Chef�̃T�[�o�[�N���C�A���g�`����DSC�̃v���^�Ɠ��l�A�m�[�h���T�[�o�[�ɖ₢���킹��i���̕��AChef���[�U�[�Ȃ�e���݂₷����������Ȃ��j

DSC��PowerShell���炵������ł��Ȃ��̂�

�@��ق�Chef��������DSC�𗘗p���Ă���ƐG�ꂽ�ʂ�APowerShell�ȊO�̌���A�c�[���ł�DSC�͑���”\���B�����DSC���A�uDMTF�v�Ƃ����W���d�l�ɉ����āA�uManaged Object Format�iMOF�j�v��uWS-Management�v�ō\������Ă��邩��ł���A���ۂ̃T�[�o�[�ݒ�ɗp����̂�MOF�t�@�C��������ł���i����̃v���O���~���O����ɂ͈ˑ����Ă��Ȃ��j�B

�@�������AMOF�𒼐ڃ������iNotePad.exe�j�ŏ������Ƃ��”\���B�����APowerShell 4.0�ł�Configuration�L�[���[�h��C���e���Z���X���͂��߂Ƃ��āu�L�q������s�܂Łv�T�|�[�g����Ă���A���ȒP��MOF�t�@�C�����쐬�ł���B���̂��ߖ{�L���ɂ����ẮAPowerShell���g����DSC �ɂ‚��Ă̂ݐG���B

�@�@�@�@�@�@ 1|2 ���̃y�[�W��

Copyright© Digital Advantage Corp. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B