Browse code

Clean up Ansible 2.0 release notes in CHANGELOG.md.

Jeff Geerling authored on 2015/09/12 11:08:01
Showing 1 changed files
... ...
@@ -4,265 +4,272 @@ Ansible Changes By Release
4 4
 ## 2.0 "Over the Hills and Far Away" - ACTIVE DEVELOPMENT
5 5
 
6 6
 Major Changes:
7
- * Introducing the new block/rescue/always directives, allow for making task blocks and introducing exception like semantics
8
- * New strategy plugins, allow to control the flow of execution of tasks per play, the default will be the same as before
9
- * Improved error handling, now you get much more detailed parser messages. General exception handling and display has been revamped.
10
- * Task includes now get evaluated during execution, end behaviour will be the same but it now allows for more dynamic includes and options.
11
- * First feature of the more dynamic includes is that "with\_<lookup>" loops are now usable with them.
12
- * callback, connection and lookup plugin APIs have changed, some will require modification to work with new version
13
- * callbacks are now shipped in the active directory and don't need to be copied, just whitelisted in ansible.cfg
14
- * Many API changes, this will break those currently using it directly, but the new API is much easier to use and test
15
- * Settings are now more inheritable, what you set at play, block or role will be automatically inhertited by the contained.
16
-   This allows for new features to automatically be settable at all levels, previously we had to manually code this
17
- * template code now retains types for bools and numbers instead of turning them into strings.
18
-   If you need the old behaviour, quote the value and it will get passed around as a string
19
- * added meta: refresh_inventory to force rereading the inventory in a play
20
- * vars are now settable at play, block, role and task level
21
- * template code now retains types for bools, and Numbers instead of turning them into strings
22
-   If you need the old behaviour, quote the value and it will get passed around as a string. In the
23
-   case of nulls, the output used to be an empty string.
24
- * Empty variables and variables set to null in yaml will no longer be converted to empty strings.
25
-   They will retain the value of `None`.  To go back to the old behaviour, you can override
26
-   the `null_representation` setting to an empty string in your config file or by setting the
27
-   `ANSIBLE_NULL_REPRESENTATION` environment variable.
28
- * backslashes used when specifying parameters in jinja2 expressions in YAML
29
-   dicts sometimes needed to be escaped twice.  This has been fixed so that
30
-   escaping once works.  Here's an example of how playbooks need to be modified::
31
-
32
-     # Syntax in 1.9.x
33
-     - debug:
34
-         msg: "{{ 'test1_junk 1\\\\3' | regex_replace('(.*)_junk (.*)', '\\\\1 \\\\2') }}"
35
-     # Syntax in 2.0.x
36
-     - debug:
37
-         msg: "{{ 'test1_junk 1\\3' | regex_replace('(.*)_junk (.*)', '\\1 \\2') }}"
38
-
39
-     # Output:
40
-     "msg": "test1 1\\3"
41
-
42
- * When a string with a trailing newline was specified in the playbook via yaml
43
-   dict format, the trailing newline was stripped.  When specified in key=value
44
-   format the trailing newlines were kept.  In v2, both methods of specifying the
45
-   string will keep the trailing newlines.  If you relied on the trailing
46
-   newline being stripped you can change your playbook like this::
47
-
48
-     # Syntax in 1.9.2
49
-     vars:
50
-       message: >
51
-         Testing
52
-         some things
53
-     tasks:
54
-     - debug:
55
-         msg: "{{ message }}"
56
-     # Syntax in 2.0.x
57
-     vars:
58
-       old_message: >
59
-         Testing
60
-         some things
61
-       message: "{{ old_messsage[:-1] }}"
62
-     - debug:
63
-         msg: "{{ message }}"
64
-     # Output
65
-     "msg": "Testing some things"
7
+
8
+* The new block/rescue/always directives allow for making task blocks and exception-like semantics
9
+* New strategy plugins (e.g. `free`) allow control over the flow of task execution per play. The default (`linear`) will be the same as before.
10
+* Improved error handling, with more detailed parser messages. General exception handling and display has been revamped.
11
+* Task includes are now evaluated during execution, allowing more dynamic includes and options.
12
+* "with\_<lookup>" loops can now be used with includes since they are dynamic.
13
+* Callback, connection and lookup plugin APIs have changed. Some projects will require modification to work with the new versions.
14
+* Callbacks are now shipped in the active directory and don't need to be copied, just whitelisted in ansible.cfg.
15
+* Many API changes. Those integrating directly with Ansible's API will encounter breaking changes, but the new API is much easier to use and test.
16
+* Settings are now more inheritable; what you set at play, block or role will be automatically inhertited by the contained. This allows for new features to automatically be settable at all levels, previously we had to manually code this.
17
+* Template code now retains types for bools and numbers instead of turning them into strings.
18
+ If you need the old behaviour, quote the value and it will get passed around as a string
19
+* Added `meta: refresh_inventory` to force rereading the inventory in a play.
20
+* Vars are now settable at play, block, role and task level.
21
+* Empty variables and variables set to null in yaml will no longer be converted to empty strings.
22
+They will retain the value of `None`. To go back to the old behaviour, you can override
23
+the `null_representation` setting to an empty string in your config file or by setting the
24
+`ANSIBLE_NULL_REPRESENTATION` environment variable.
25
+* Backslashes used when specifying parameters in jinja2 expressions in YAML
26
+dicts sometimes needed to be escaped twice. This has been fixed so that
27
+escaping once works. Here's an example of how playbooks need to be modified:
28
+
29
+    ```
30
+    # Syntax in 1.9.x
31
+    - debug:
32
+        msg: "{{ 'test1_junk 1\\\\3' | regex_replace('(.*)_junk (.*)', '\\\\1 \\\\2') }}"
33
+    # Syntax in 2.0.x
34
+    - debug:
35
+        msg: "{{ 'test1_junk 1\\3' | regex_replace('(.*)_junk (.*)', '\\1 \\2') }}"
36
+    
37
+    # Output:
38
+    "msg": "test1 1\\3"
39
+    ```
40
+
41
+* When a string with a trailing newline was specified in the playbook via yaml
42
+dict format, the trailing newline was stripped. When specified in key=value
43
+format the trailing newlines were kept. In v2, both methods of specifying the
44
+string will keep the trailing newlines. If you relied on the trailing
45
+newline being stripped you can change your playbook like this:
46
+
47
+    ```
48
+    # Syntax in 1.9.2
49
+    vars:
50
+      message: >
51
+        Testing
52
+        some things
53
+    tasks:
54
+    - debug:
55
+        msg: "{{ message }}"
56
+    
57
+    # Syntax in 2.0.x
58
+    vars:
59
+      old_message: >
60
+        Testing
61
+        some things
62
+      message: "{{ old_messsage[:-1] }}"
63
+    - debug:
64
+        msg: "{{ message }}"
65
+    # Output
66
+    "msg": "Testing some things"
67
+    ```
66 68
 
67 69
 Deprecated Modules (new ones in parens):
68
-  * ec2_ami_search (ec2_ami_find)
69
-  * quantum_network (os_network)
70
-  * glance_image
71
-  * nova_compute   (os_server)
72
-  * quantum_floating_ip (os_floating_ip)
70
+
71
+* ec2_ami_search (ec2_ami_find)
72
+* quantum_network (os_network)
73
+* glance_image
74
+* nova_compute   (os_server)
75
+* quantum_floating_ip (os_floating_ip)
73 76
 
74 77
 New Modules:
75
-  * amazon: ec2_ami_copy
76
-  * amazon: ec2_ami_find
77
-  * amazon: ec2_elb_facts
78
-  * amazon: ec2_eni
79
-  * amazon: ec2_eni_facts
80
-  * amazon: ec2_remote_facts
81
-  * amazon: ec2_vpc_net
82
-  * amazon: ec2_vpc_route_table
83
-  * amazon: ec2_vpc_route_table_facts
84
-  * amazon: ec2_vpc_subnet
85
-  * amazon: ec2_win_password
86
-  * amazon: elasticache_subnet_group
87
-  * amazon: iam
88
-  * amazon: iam_policy
89
-  * amazon: route53_zone
90
-  * amazon: sts_assume_role
91
-  * amazon: s3_bucket
92
-  * amazon: s3_lifecycle
93
-  * amazon: s3_logging
94
-  * apk
95
-  * bundler
96
-  * centurylink: clc_blueprint_package
97
-  * centurylink: clc_firewall_policy
98
-  * centurylink: clc_loadbalancer
99
-  * centurylink: clc_modify_server
100
-  * centurylink: clc_publicip
101
-  * centurylink: clc_server
102
-  * circonus_annotation
103
-  * consul
104
-  * consul_acl
105
-  * consul_kv
106
-  * consul_session
107
-  * cloudtrail
108
-  * cloudstack: cs_account
109
-  * cloudstack: cs_affinitygroup
110
-  * cloudstack: cs_domain
111
-  * cloudstack: cs_facts
112
-  * cloudstack: cs_firewall
113
-  * cloudstack: cs_iso
114
-  * cloudstack: cs_instance
115
-  * cloudstack: cs_instancegroup
116
-  * cloudstack: cs_ip_address
117
-  * cloudstack: cs_network
118
-  * cloudstack: cs_portforward
119
-  * cloudstack: cs_project
120
-  * cloudstack: cs_sshkeypair
121
-  * cloudstack: cs_securitygroup
122
-  * cloudstack: cs_securitygroup_rule
123
-  * cloudstack: cs_staticnat
124
-  * cloudstack: cs_template
125
-  * cloudstack: cs_vmsnapshot
126
-  * datadog_monitor
127
-  * dpkg_selections
128
-  * elasticsearch_plugin
129
-  * expect
130
-  * find
131
-  * hall
132
-  * libvirt: virt_net
133
-  * libvirt: virt_pool
134
-  * maven_artifact
135
-  * openstack: os_ironic
136
-  * openstack: os_ironic_node
137
-  * openstack: os_client_config
138
-  * openstack: os_floating_ip
139
-  * openstack: os_image
140
-  * openstack: os_network
141
-  * openstack: os_nova_flavor
142
-  * openstack: os_object
143
-  * openstack: os_security_group
144
-  * openstack: os_security_group_rule
145
-  * openstack: os_server
146
-  * openstack: os_server_actions
147
-  * openstack: os_server_facts
148
-  * openstack: os_server_volume
149
-  * openstack: os_subnet
150
-  * openstack: os_volume
151
-  * openvswitch_db.
152
-  * osx_defaults
153
-  * pagerduty_alert
154
-  * pam_limits
155
-  * pear
156
-  * profitbricks: profitbricks
157
-  * profitbricks: profitbricks_datacenter
158
-  * profitbricks: profitbricks_nic
159
-  * profitbricks: profitbricks_snapshot
160
-  * profitbricks: profitbricks_volume
161
-  * profitbricks: profitbricks_volume_attachments
162
-  * proxmox
163
-  * proxmox_template 
164
-  * puppet 
165
-  * pushover
166
-  * pushbullet
167
-  * rax: rax_mon_alarm
168
-  * rax: rax_mon_check
169
-  * rax: rax_mon_entity
170
-  * rax: rax_mon_notification
171
-  * rax: rax_mon_notification_plan
172
-  * rabbitmq_binding
173
-  * rabbitmq_exchange
174
-  * rabbitmq_queue
175
-  * selinux_permissive
176
-  * sensu_check
177
-  * sensu_subscription
178
-  * seport
179
-  * slackpkg
180
-  * solaris_zone
181
-  * vertica_configuration
182
-  * vertica_facts
183
-  * vertica_role
184
-  * vertica_schema
185
-  * vertica_user
186
-  * vmware: vmware_datacenter
187
-  * vmware: vmware_cluster
188
-  * vmware: vmware_dns_config
189
-  * vmware: vmware_dvs_host
190
-  * vmware: vmware_dvs_portgroup
191
-  * vmware: vmware_dvswitch
192
-  * vmware: vmware_host
193
-  * vmware: vmware_vmkernel_ip_config
194
-  * vmware: vmware_portgroup
195
-  * vmware: vmware_vm_facts
196
-  * vmware: vmware_vmkernel
197
-  * vmware: vmware_vsan_cluster
198
-  * vmware: vmware_vswitch
199
-  * vmware: vca_fw
200
-  * vmware: vca_nat
201
-  * vmware: vsphere_copy
202
-  * webfaction_app
203
-  * webfaction_db
204
-  * webfaction_domain
205
-  * webfaction_mailbox
206
-  * webfaction_site
207
-  * win_environment
208
-  * win_package
209
-  * win_scheduled_task
210
-  * win_iis_virtualdirectory
211
-  * win_iis_webapplication
212
-  * win_iis_webapppool
213
-  * win_iis_webbinding
214
-  * win_iis_website
215
-  * win_regedit
216
-  * win_unzip
217
-  * xenserver_facts
218
-  * zabbix_host
219
-  * zabbix_hostmacro
220
-  * zabbix_screen
221
-  * znode
78
+
79
+* amazon: ec2_ami_copy
80
+* amazon: ec2_ami_find
81
+* amazon: ec2_elb_facts
82
+* amazon: ec2_eni
83
+* amazon: ec2_eni_facts
84
+* amazon: ec2_remote_facts
85
+* amazon: ec2_vpc_net
86
+* amazon: ec2_vpc_route_table
87
+* amazon: ec2_vpc_route_table_facts
88
+* amazon: ec2_vpc_subnet
89
+* amazon: ec2_win_password
90
+* amazon: elasticache_subnet_group
91
+* amazon: iam
92
+* amazon: iam_policy
93
+* amazon: route53_zone
94
+* amazon: sts_assume_role
95
+* amazon: s3_bucket
96
+* amazon: s3_lifecycle
97
+* amazon: s3_logging
98
+* apk
99
+* bundler
100
+* centurylink: clc_blueprint_package
101
+* centurylink: clc_firewall_policy
102
+* centurylink: clc_loadbalancer
103
+* centurylink: clc_modify_server
104
+* centurylink: clc_publicip
105
+* centurylink: clc_server
106
+* circonus_annotation
107
+* consul
108
+* consul_acl
109
+* consul_kv
110
+* consul_session
111
+* cloudtrail
112
+* cloudstack: cs_account
113
+* cloudstack: cs_affinitygroup
114
+* cloudstack: cs_domain
115
+* cloudstack: cs_facts
116
+* cloudstack: cs_firewall
117
+* cloudstack: cs_iso
118
+* cloudstack: cs_instance
119
+* cloudstack: cs_instancegroup
120
+* cloudstack: cs_ip_address
121
+* cloudstack: cs_network
122
+* cloudstack: cs_portforward
123
+* cloudstack: cs_project
124
+* cloudstack: cs_sshkeypair
125
+* cloudstack: cs_securitygroup
126
+* cloudstack: cs_securitygroup_rule
127
+* cloudstack: cs_staticnat
128
+* cloudstack: cs_template
129
+* cloudstack: cs_vmsnapshot
130
+* datadog_monitor
131
+* dpkg_selections
132
+* elasticsearch_plugin
133
+* expect
134
+* find
135
+* hall
136
+* libvirt: virt_net
137
+* libvirt: virt_pool
138
+* maven_artifact
139
+* openstack: os_ironic
140
+* openstack: os_ironic_node
141
+* openstack: os_client_config
142
+* openstack: os_floating_ip
143
+* openstack: os_image
144
+* openstack: os_network
145
+* openstack: os_nova_flavor
146
+* openstack: os_object
147
+* openstack: os_security_group
148
+* openstack: os_security_group_rule
149
+* openstack: os_server
150
+* openstack: os_server_actions
151
+* openstack: os_server_facts
152
+* openstack: os_server_volume
153
+* openstack: os_subnet
154
+* openstack: os_volume
155
+* openvswitch_db.
156
+* osx_defaults
157
+* pagerduty_alert
158
+* pam_limits
159
+* pear
160
+* profitbricks: profitbricks
161
+* profitbricks: profitbricks_datacenter
162
+* profitbricks: profitbricks_nic
163
+* profitbricks: profitbricks_snapshot
164
+* profitbricks: profitbricks_volume
165
+* profitbricks: profitbricks_volume_attachments
166
+* proxmox
167
+* proxmox_template
168
+* puppet
169
+* pushover
170
+* pushbullet
171
+* rax: rax_mon_alarm
172
+* rax: rax_mon_check
173
+* rax: rax_mon_entity
174
+* rax: rax_mon_notification
175
+* rax: rax_mon_notification_plan
176
+* rabbitmq_binding
177
+* rabbitmq_exchange
178
+* rabbitmq_queue
179
+* selinux_permissive
180
+* sensu_check
181
+* sensu_subscription
182
+* seport
183
+* slackpkg
184
+* solaris_zone
185
+* vertica_configuration
186
+* vertica_facts
187
+* vertica_role
188
+* vertica_schema
189
+* vertica_user
190
+* vmware: vmware_datacenter
191
+* vmware: vmware_cluster
192
+* vmware: vmware_dns_config
193
+* vmware: vmware_dvs_host
194
+* vmware: vmware_dvs_portgroup
195
+* vmware: vmware_dvswitch
196
+* vmware: vmware_host
197
+* vmware: vmware_vmkernel_ip_config
198
+* vmware: vmware_portgroup
199
+* vmware: vmware_vm_facts
200
+* vmware: vmware_vmkernel
201
+* vmware: vmware_vsan_cluster
202
+* vmware: vmware_vswitch
203
+* vmware: vca_fw
204
+* vmware: vca_nat
205
+* vmware: vsphere_copy
206
+* webfaction_app
207
+* webfaction_db
208
+* webfaction_domain
209
+* webfaction_mailbox
210
+* webfaction_site
211
+* win_environment
212
+* win_package
213
+* win_scheduled_task
214
+* win_iis_virtualdirectory
215
+* win_iis_webapplication
216
+* win_iis_webapppool
217
+* win_iis_webbinding
218
+* win_iis_website
219
+* win_regedit
220
+* win_unzip
221
+* xenserver_facts
222
+* zabbix_host
223
+* zabbix_hostmacro
224
+* zabbix_screen
225
+* znode
222 226
 
223 227
 New Inventory scripts:
224
-  * cloudstack
225
-  * fleetctl
226
-  * openvz
227
-  * nagios_ndo
228
-  * proxmox
229
-  * serf
228
+
229
+* cloudstack
230
+* fleetctl
231
+* openvz
232
+* nagios_ndo
233
+* proxmox
234
+* serf
230 235
 
231 236
 New Lookups:
232
- * credstash
233
- * hashi_vault
234
- * ini
235
- * shelvefile
237
+
238
+* credstash
239
+* hashi_vault
240
+* ini
241
+* shelvefile
236 242
 
237 243
 New filters:
238
- * combine
244
+
245
+* combine
239 246
 
240 247
 New Connection Methods:
241
- *  Added a connection plugin for talking to docker containers on the ansible controller machine without using ssh
248
+
249
+* Added a connection plugin for talking to docker containers on the ansible controller machine without using ssh.
242 250
 
243 251
 Minor changes:
244 252
 
245
- * Many more tests, new API makes things more testable and we took advantage of it
246
- * big_ip modules now support turning off ssl certificate validation (use only for self signed)
247
- * Use "pattern1:pattern2" to combine host matching patterns. The undocumented
248
-   use of semicolons or commas to combine patterns is no longer supported.
249
- * Use ``hosts: groupname[x:y]`` to select a subset of hosts in a group; the
250
-   ``[x-y]`` range syntax is no longer supported. Note that ``[0:1]`` matches
251
-   two hosts, i.e. the range is inclusive of its endpoints.
252
- * Now when you delegate a action that returns ansible_facts, these facts will now be applied to the delegated host,
253
-   unlike before which they were applied to the current host.
254
- * Consolidated code from modules using urllib2 to normalize features, TLS and SNI support
255
- * synchronize module's dest_port parameter now takes precedence over the ansible_ssh_port inventory setting
256
- * play output is now dynamically sized to terminal with a minimal of 80 coluumns (old default)
257
- * vars_prompt and pause are now skipped with a warning if the play is called non interactively (i.e. pull from cron)
258
- * Support for OpenBSD's 'doas' privilege escalation method.
259
- * most vault operations can now be done over multilple files
260
- * ansible-vault encrypt/decrypt read from stdin if no other input file is given,
261
-   and can write to a given ``--output file`` (including stdout, '-'). This lets
262
-   you avoid ever writing sensitive plaintext to disk.
263
- * ansible-vault rekey accepts the --new-vault-password-file option.
264
- * configuration items defined as paths (local only) will now all support shell style interpolations
265
- * many fixes and new options added to modules, too many to list here.
253
+* Many more tests. The new API makes things more testable and we took advantage of it.
254
+* big_ip modules now support turning off ssl certificate validation (use only for self-signed certificates).
255
+* Use "pattern1:pattern2" to combine host matching patterns. The undocumented
256
+use of semicolons or commas to combine patterns is no longer supported.
257
+* Use ``hosts: groupname[x:y]`` to select a subset of hosts in a group; the
258
+``[x-y]`` range syntax is no longer supported. Note that ``[0:1]`` matches
259
+two hosts, i.e. the range is inclusive of its endpoints.
260
+* Now when you delegate an action that returns ansible_facts, these facts will be applied to the delegated host, unlike before when they were applied to the current host.
261
+* Consolidated code from modules using urllib2 to normalize features, TLS and SNI support.
262
+* synchronize module's dest_port parameter now takes precedence over the ansible_ssh_port inventory setting.
263
+* Play output is now dynamically sized to terminal with a minimum of 80 coluumns (old default).
264
+* vars_prompt and pause are now skipped with a warning if the play is called non interactively (i.e. pull from cron).
265
+* Support for OpenBSD's 'doas' privilege escalation method.
266
+* Most vault operations can now be done over multilple files.
267
+* ansible-vault encrypt/decrypt read from stdin if no other input file is given,
268
+and can write to a given ``--output file`` (including stdout, '-'). This lets
269
+you avoid ever writing sensitive plaintext to disk.
270
+* ansible-vault rekey accepts the --new-vault-password-file option.
271
+* Configuration items defined as paths (local only) now all support shell style interpolations.
272
+* Many fixes and new options added to modules, too many to list here.
266 273
 
267 274
 ## 1.9.2 "Dancing In the Street" - Jun 26, 2015
268 275