Skip to content

Commit 9e2c547

Browse files
(AB-85436) Editing Pass: AcroLinx
This change applies AcroLinx suggestions to the maching configuration articles, improving their score and readability.
1 parent 0ae80c1 commit 9e2c547

14 files changed

+153
-151
lines changed

articles/governance/machine-configuration/agent-notes.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ the most recent developments, this article provides you with information about:
1717
- Known issues
1818
- Bug fixes
1919

20-
For information on release notes for the connected machine agent, please see
20+
For information on release notes for the connected machine agent, see
2121
[What's new with the connected machine agent][01].
2222

2323
## Release notes
@@ -26,7 +26,7 @@ For information on release notes for the connected machine agent, please see
2626

2727
#### New Features
2828

29-
- In this release we've added support for Linux distributions such as Red Hat Enterprise Linux
29+
- In this release, we've added support for Linux distributions such as Red Hat Enterprise Linux
3030
(RHEL) 9, Mariner 1&2, Alma 9, and Rocky 9.
3131

3232
#### Fixed
@@ -40,14 +40,15 @@ In this release, various improvements were made.
4040

4141
- You can now restrict which URLs can be used to download machine configuration packages by setting
4242
the `allowedGuestConfigPkgUrls` tag on the server resource and providing a comma-separated list of
43-
URL patterns to allow. If the tag exists, the agent will only allow custom packages to be
43+
URL patterns to allow. If the tag exists, the agent only allows custom packages to be
4444
downloaded from the specified URLs. Built-in packages are unaffected by this feature.
4545

4646
## Fixed
4747

4848
- Resolves local elevation of privilege vulnerability [CVE-2022-38007][03].
4949
- If you're currently running an older version of the AzurePolicyforLinux extension, use the
50-
PowerShell or Azure CLI commands below to update your extension to the latest version.
50+
PowerShell or Azure CLI commands in the following examples to update your extension to the latest
51+
version.
5152

5253
```azurepowershell-interactive
5354
$params = @{

articles/governance/machine-configuration/machine-configuration-assignments.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,12 @@ more information, see [getting compliance data][02].
3838

3939
### Deletion of guest assignments from Azure Policy
4040

41-
When an Azure Policy assignment is deleted, if a machine configuration assignment was created by
42-
the policy, the machine configuration assignment is also deleted.
41+
When an Azure Policy assignment is deleted, if the policy created a machine configuration
42+
assignment, the machine configuration assignment is also deleted.
4343

44-
When an Azure Policy assignment is deleted, if a machine configuration assignment was created by
45-
the policy, you'll need to manually delete the corresponding machine configuration assignment. This
46-
can be done by navigating to the guest assignments page on Azure portal and deleting the assignment
47-
there.
44+
When an Azure Policy assignment is deleted, you need to manually delete any machine configuration
45+
assignments the policy created. You can do so by navigating to the guest assignments page on Azure
46+
portal and deleting the assignment there.
4847

4948
## Manually creating machine configuration assignments
5049

@@ -118,7 +117,7 @@ $guestAssignment | Remove-AzResource
118117
## Next steps
119118

120119
- Read the [machine configuration overview][03].
121-
- Setup a custom machine configuration package [development environment][04].
120+
- Set up a custom machine configuration package [development environment][04].
122121
- [Create a package artifact][05] for machine configuration.
123122
- [Test the package artifact][06] from your development environment.
124123
- Use the **GuestConfiguration** module to [create an Azure Policy definition][07] for at-scale

articles/governance/machine-configuration/machine-configuration-azure-automation-migration.md

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ AADSC). When possible, you should plan to move your content and machines to the
1515
article provides guidance on developing a migration strategy from Azure Automation to machine
1616
configuration.
1717

18-
New features in machine configuration address top asks from customers:
18+
New features in machine configuration address customer requests:
1919

20-
- Increased size limit for configurations ( 100MB )
20+
- Increased size limit for configurations to 100 MB
2121
- Advanced reporting through Azure Resource Graph including resource ID and state
2222
- Manage multiple configurations for the same machine
2323
- When machines drift from the desired state, you control when remediation occurs
@@ -61,8 +61,8 @@ configuration.
6161

6262
You can only export configuration scripts from Azure Automation. It isn't possible to export node
6363
configurations, or compiled MOF files. If you published MOF files directly into the Automation
64-
Account and no longer have access to the original file, you must recompile from your private
65-
configuration scripts. If you can't find the original configuration, you must re-author it.
64+
Account and no longer have access to the original file, you need to recompile from your private
65+
configuration scripts. If you can't find the original configuration, you must reauthor it.
6666

6767
To export configuration scripts from Azure Automation, first identify the Azure Automation account
6868
that has the configurations and the name of the Resource Group the Automation Account is deployed
@@ -147,7 +147,7 @@ After you've discovered your accounts and the number of configurations, you migh
147147
all configurations to a local folder on your machine. To automate this process, pipe the output of
148148
each command in the earlier examples to the next command.
149149

150-
The example exports 5 configurations. The output pattern is the only indicator of success.
150+
The example exports five configurations. The output pattern is the only indicator of success.
151151

152152
```azurepowershell-interactive
153153
Get-AzAutomationAccount |
@@ -173,7 +173,7 @@ configuration per machine. To take advantage of the expanded capabilities offere
173173
configuration, you can divide large configuration files into many smaller configurations where each
174174
handles a specific scenario.
175175

176-
There is no orchestration in machine configuration to control the order of how configurations are
176+
There's no orchestration in machine configuration to control the order of how configurations are
177177
sorted. Keep steps in a configuration together in one package if they're required to happen
178178
sequentially.
179179

@@ -184,12 +184,11 @@ configurations require which modules and versions. You must have the modules in
184184
environment to create a new machine configuration package. To create a list of modules you need for
185185
migration, use PowerShell to query Azure Automation for the name and version of modules.
186186

187-
If you are using modules that are custom authored and only exist in your private development
187+
If you're using modules that are custom authored and only exist in your private development
188188
environment, it isn't possible to export them from Azure Automation.
189189

190190
If you can't find a custom module in your environment that's required for a configuration and in
191-
the account, you won't be able to compile the configuration. This means you won't be able to
192-
migrate the configuration.
191+
the account, you can't compile the configuration. Therefore, you can't migrate the configuration.
193192

194193
#### List modules imported in Azure Automation
195194

@@ -235,8 +234,8 @@ xRemoteDesktopAdmin 1.1.0.0
235234

236235
If the modules were imported from the PowerShell Gallery, you can pipe the output from
237236
`Find-Module` directly to `Install-Module`. Piping the output across commands provides a solution
238-
to load a developer environment with all modules currently in an Automation Account that are
239-
available publicly in the PowerShell Gallery.
237+
to load a developer environment with all modules currently in an Automation Account if they're
238+
available in the PowerShell Gallery.
240239

241240
You can use the same approach to pull modules from a custom NuGet feed if you have registered the
242241
feed in your local environment as a [PowerShellGet repository][04].
@@ -314,10 +313,10 @@ function New-TaskResolvedInPWSH7 {
314313
}
315314
```
316315

317-
#### Will I have to add the Reasons property to Get-TargetResource in all modules I migrate?
316+
#### Do I need to add the Reasons property to Get-TargetResource in all modules I migrate?
318317

319318
Implementing the [Reasons property][09] provides a better experience when viewing the results of a
320-
configuration assignment from the Azure Portal. If the `Get` method in a module doesn't include
319+
configuration assignment from the Azure portal. If the `Get` method in a module doesn't include
321320
**Reasons**, generic output is returned with details from the properties returned by the `Get`
322321
method. Therefore, it's optional for migration.
323322

@@ -348,22 +347,22 @@ Azure Automation State Configuration.
348347
### Hybrid machines
349348

350349
Machines outside of Azure [can be registered to Azure Automation State Configuration][13], but they
351-
don't have a machine resource in Azure. The connection to Azure Automation is handled by the Local
352-
Configuration Manager (LCM) service inside the machine. The record of the node is managed as a
353-
resource in the Azure Automation provider type.
350+
don't have a machine resource in Azure. The Local Configuration Manager (LCM) service inside the
351+
machine handles the connection to Azure Automation. The record of the node is managed as a resource
352+
in the Azure Automation provider type.
354353

355354
Before removing a machine from Azure Automation State Configuration, onboard each node as an
356-
[Azure Arc-enabled server][14]. Onboarding to Azure Arc creates a machine resource in Azure so the
357-
machine can be managed by Azure Policy. The machine can be onboarded to Azure Arc at any time, but
358-
you can use Azure Automation State Configuration to automate the process.
355+
[Azure Arc-enabled server][14]. Onboarding to Azure Arc creates a machine resource in Azure so
356+
Azure Policy can manage the machine. The machine can be onboarded to Azure Arc at any time, but you
357+
can use Azure Automation State Configuration to automate the process.
359358

360359
You can register a machine to Azure Arc-enabled servers by using PowerShell DSC. For details, view
361360
the page [How to install the Connected Machine agent using Windows PowerShell DSC][15]. Remember
362361
however, that Azure Automation State Configuration can manage only one configuration per machine,
363-
per Automation Account. This means you have the option to export, test, and prepare your content
364-
for machine configuration, and then switch the node configuration in Azure Automation to onboard to
365-
Azure Arc. As the last step, remove the node registration from Azure Automation State Configuration
366-
and move forward only managing the machine state through machine configuration.
362+
per Automation Account. You can export, test, and prepare your content for machine configuration,
363+
and then switch the node configuration in Azure Automation to onboard to Azure Arc. As the last
364+
step, remove the node registration from Azure Automation State Configuration and move forward only
365+
managing the machine state through machine configuration.
367366

368367
## Troubleshooting issues when exporting content
369368

articles/governance/machine-configuration/machine-configuration-create-assignment.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,14 @@ To modify the example for other resource types such as [Arc-enabled servers][06]
3030
type to the name of the resource provider. For Arc-enabled servers, the resource provider is
3131
`Microsoft.HybridCompute/machines`.
3232

33-
Replace the following "<>" fields with values specific to you environment:
33+
Replace the following "<>" fields with values specific to your environment:
3434

35-
- `<vm_name>`: Name of the machine resource where the configuration will be applied
36-
- `<configuration_name>`: Name of the configuration to apply
37-
- `<vm_location>`: Azure region where the machine configuration assignment will be created
38-
- `<Url_to_Package.zip>`: For custom content package, an HTTPS link to the `.zip` file
39-
- `<SHA256_hash_of_package.zip>`: For custom content package, a SHA256 hash of the `.zip` file
35+
- `<vm_name>`: Specify the name of the machine resource to apply the configuration on.
36+
- `<configuration_name>`: Specify the name of the configuration to apply.
37+
- `<vm_location>`: Specify the Azure region to create the machine configuration assignment in.
38+
- `<Url_to_Package.zip>`: Specify an HTTPS link to the `.zip` file for your custom content package.
39+
- `<SHA256_hash_of_package.zip>`: Specify the SHA256 hash of the `.zip` file for your custom
40+
content package.
4041

4142
## Assign a configuration using an Azure Resource Manager template
4243

@@ -229,7 +230,7 @@ resource "azurerm_virtual_machine_configuration_policy_assignment" "AzureWindows
229230
## Next steps
230231

231232
- Read the [machine configuration overview][12].
232-
- Setup a custom machine configuration package [development environment][13].
233+
- Set up a custom machine configuration package [development environment][13].
233234
- [Create a package artifact][14] for machine configuration.
234235
- [Test the package artifact][15] from your development environment.
235236
- [Publish the package artifact][03] so it's accessible to your machines.

articles/governance/machine-configuration/machine-configuration-create-definition.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ include a filter for tags. The **Tag** parameter of `New-GuestConfigurationPolic
142142
array of hash tables containing individual tag entries. The tags are added to the **if** section of
143143
the policy definition and can't be modified by a policy assignment.
144144

145-
An example snippet of a policy definition that filters for tags is given below.
145+
An example snippet of a policy definition that filters for tags follows.
146146

147147
```json
148148
"if": {
@@ -227,7 +227,7 @@ New-GuestConfigurationPolicy @PolicyParam
227227
### Publish the Azure Policy definition
228228

229229
Finally, you can publish the policy definitions using the `New-AzPolicyDefinition` cmdlet. The
230-
below commands will publish your machine configuration policy to the policy center.
230+
below commands publish your machine configuration policy to the policy center.
231231

232232
To run the `New-AzPolicyDefinition` command, you need access to create policy definitions in Azure.
233233
The specific authorization requirements are documented in the [Azure Policy Overview][06] page. The
@@ -237,7 +237,7 @@ recommended built-in role is `Resource Policy Contributor`.
237237
New-AzPolicyDefinition -Name 'mypolicydefinition' -Policy '.\policies\auditIfNotExists.json'
238238
```
239239

240-
Or, if this is a deploy if not exist policy (DINE) please use
240+
Or, if the policy is a deploy if not exist policy (DINE) use this command:
241241

242242
```azurepowershell-interactive
243243
New-AzPolicyDefinition -Name 'mypolicydefinition' -Policy '.\policies\deployIfNotExists.json'
@@ -267,12 +267,12 @@ the following explanations.
267267
- **Version**: When you run the `New-GuestConfigurationPolicy` cmdlet, you must specify a version
268268
number greater than what's currently published.
269269
- **contentUri**: When you run the `New-GuestConfigurationPolicy` cmdlet, you must specify a URI to
270-
the location of the package. Including a package version in the file name will ensure the value
271-
of this property changes in each release.
272-
- **contentHash**: This property is updated automatically by the `New-GuestConfigurationPolicy`
273-
cmdlet. It's a hash value of the package created by `New-GuestConfigurationPackage`. The property
274-
must be correct for the `.zip` file you publish. If only the **contentUri** property is updated,
275-
the Extension won't accept the content package.
270+
the location of the package. Including a package version in the file name ensures the value of
271+
this property changes in each release.
272+
- **contentHash**: The `New-GuestConfigurationPolicy` cmdlet updates this property automatically.
273+
It's a hash value of the package created by `New-GuestConfigurationPackage`. The property must be
274+
correct for the `.zip` file you publish. If only the **contentUri** property is updated, the
275+
Extension rejects the content package.
276276

277277
The easiest way to release an updated package is to repeat the process described in this article
278278
and specify an updated version number. That process guarantees all properties have been correctly

articles/governance/machine-configuration/machine-configuration-create-publish.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: How to publish custom machine configuration package artifacts
3-
description: Learn how to publish a machine configuration package file top Azure blob storage and get a SAS token for secure access.
3+
description: Learn how to publish a machine configuration package file to Azure blob storage and get a SAS token for secure access.
44
ms.date: 07/25/2022
55
ms.topic: how-to
66
ms.custom: devx-track-azurepowershell
@@ -43,10 +43,10 @@ New-AzStorageAccount @newAccountParams |
4343
New-AzStorageContainer -Name guestconfiguration -Permission Blob
4444
```
4545

46-
To publish your configuration package to Azure blob storage, you can follow the below steps which
47-
leverages the Az.Storage module.
46+
To publish your configuration package to Azure blob storage, you can follow these steps, which use
47+
the **Az.Storage** module.
4848

49-
First, obtain the context of the storage account in which the package will be stored. This example
49+
First, obtain the context of the storage account you want to store the package in. This example
5050
creates a context by specifying a connection string and saves the context in the variable
5151
`$Context`.
5252

@@ -73,7 +73,7 @@ Set-AzStorageBlobContent @setParams
7373

7474
Optionally, you can add a SAS token in the URL to ensure the content package is accessed securely.
7575
The below example generates a blob SAS token with read access and returns the full blob URI with
76-
the shared access signature token. In this example, this includes a time limit of 3 years.
76+
the shared access signature token. In this example, the token has a time limit of three years.
7777

7878
```azurepowershell-interactive
7979
$StartTime = Get-Date

articles/governance/machine-configuration/machine-configuration-create-setup.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Operating systems where the module can be installed:
3030
- Windows
3131

3232
The module can be installed on a machine running PowerShell 7.x. Install the versions of PowerShell
33-
listed below.
33+
listed in the following table for your operating system.
3434

3535
| OS | PowerShell Version |
3636
| --------- | ---------------------- |
@@ -39,8 +39,8 @@ listed below.
3939

4040
The **GuestConfiguration** module requires the following software:
4141

42-
- Azure PowerShell 5.9.0 or higher. The required Az modules are installed automatically with the
43-
**GuestConfiguration** module, or you can follow [these instructions][03].
42+
- Azure PowerShell 5.9.0 or higher. The required Az PowerShell modules are installed automatically
43+
with the **GuestConfiguration** module, or you can follow [these instructions][03].
4444

4545

4646
### Install the module from the PowerShell Gallery

articles/governance/machine-configuration/machine-configuration-create-signing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ content package, and append a tag to the machines that should require code to be
2020

2121
To use the Signature Validation feature, run the `Protect-GuestConfigurationPackage` cmdlet to sign
2222
the package before it's published. This cmdlet requires a 'Code Signing' certificate. If you don't
23-
have a 'Code Signing' certificate, please use the script below to create a self-signed certificate
24-
for testing purposes to follow along with the example.
23+
have a 'Code Signing' certificate, use the following script to create a self-signed certificate for
24+
testing purposes to follow along with the example.
2525

2626
## Windows signature validation
2727

articles/governance/machine-configuration/machine-configuration-create-test.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,13 @@ Before you can begin testing, you need to [set up your authoring environment][01
3131
You can test the package from your workstation or continuous integration and continuous deployment
3232
(CI/CD) environment. The **GuestConfiguration** module includes the same agent for your development
3333
environment as is used inside Azure or Arc enabled machines. The agent includes a stand-alone
34-
instance of PowerShell 7.1.3 for Windows and 7.2.0-preview.7 for Linux. This ensures the script
35-
environment where the package is tested will be consistent with machines you manage using machine
36-
configuration.
34+
instance of PowerShell 7.1.3 for Windows and 7.2.0-preview.7 for Linux. The stand-alone instance
35+
ensures the script environment where the package is tested is consistent with machines you manage
36+
using machine configuration.
3737

3838
The agent service in Azure and Arc-enabled machines is running as the `LocalSystem` account in
39-
Windows and Root in Linux. Run the commands below in privileged security context for best results.
39+
Windows and Root in Linux. Run the commands in this article in a privileged security context for
40+
best results.
4041

4142
To run PowerShell as `LocalSystem` in Windows, use the SysInternals tool [PSExec][03].
4243

@@ -112,7 +113,7 @@ In Linux, by running PowerShell using sudo.
112113
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'
113114
```
114115

115-
The command won't return output unless errors occur. To troubleshoot details about events occurring
116+
The command only returns output when errors occur. To troubleshoot details about events occurring
116117
during `Set`, use the `-verbose` parameter.
117118

118119
After running the command `Start-GuestConfigurationPackageRemediation`, you can run the command

0 commit comments

Comments
 (0)