mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add a code-smell test for smart quotes and remove smart quotes from all files
This commit is contained in:
parent
f9370c95d7
commit
c82cf791dd
41 changed files with 147 additions and 120 deletions
4
.github/ISSUE_TEMPLATE.md
vendored
4
.github/ISSUE_TEMPLATE.md
vendored
|
@ -13,7 +13,7 @@ Also test if the latest release, and master branch are affected too.
|
||||||
<!--- Name of the module/plugin/task/feature -->
|
<!--- Name of the module/plugin/task/feature -->
|
||||||
|
|
||||||
##### ANSIBLE VERSION
|
##### ANSIBLE VERSION
|
||||||
<!--- Paste verbatim output from “ansible --version” between quotes below -->
|
<!--- Paste verbatim output from "ansible --version" between quotes below -->
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -30,7 +30,7 @@ Otherwise, mention any settings you have changed/added/removed in ansible.cfg
|
||||||
##### OS / ENVIRONMENT
|
##### OS / ENVIRONMENT
|
||||||
<!---
|
<!---
|
||||||
Mention the OS you are running Ansible from, and the OS you are
|
Mention the OS you are running Ansible from, and the OS you are
|
||||||
managing, or say “N/A” for anything that is not platform-specific.
|
managing, or say "N/A" for anything that is not platform-specific.
|
||||||
Also mention the specific version of what you are trying to control,
|
Also mention the specific version of what you are trying to control,
|
||||||
e.g. if this is a network bug the version of firmware on the network device.
|
e.g. if this is a network bug the version of firmware on the network device.
|
||||||
-->
|
-->
|
||||||
|
|
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -18,7 +18,7 @@ the change does.
|
||||||
<!--- Name of the module/plugin/module/task -->
|
<!--- Name of the module/plugin/module/task -->
|
||||||
|
|
||||||
##### ANSIBLE VERSION
|
##### ANSIBLE VERSION
|
||||||
<!--- Paste verbatim output from “ansible --version” between quotes below -->
|
<!--- Paste verbatim output from "ansible --version" between quotes below -->
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -1808,7 +1808,7 @@ Module fixes:
|
||||||
This re-executes inventory scripts, but does not force them to ignore any cache they might use.
|
This re-executes inventory scripts, but does not force them to ignore any cache they might use.
|
||||||
* New delegate_facts directive, a boolean that allows you to apply facts to the delegated host (true/yes) instead of the inventory_hostname (no/false) which is the default and previous behaviour.
|
* New delegate_facts directive, a boolean that allows you to apply facts to the delegated host (true/yes) instead of the inventory_hostname (no/false) which is the default and previous behaviour.
|
||||||
* local connections now work with 'su' as a privilege escalation method
|
* local connections now work with 'su' as a privilege escalation method
|
||||||
* Ansible 2.0 has deprecated the “ssh” from ansible_ssh_user, ansible_ssh_host, and ansible_ssh_port to become ansible_user, ansible_host, and ansible_port.
|
* Ansible 2.0 has deprecated the "ssh" from ansible_ssh_user, ansible_ssh_host, and ansible_ssh_port to become ansible_user, ansible_host, and ansible_port.
|
||||||
* New ssh configuration variables (`ansible_ssh_common_args`, `ansible_ssh_extra_args`) can be used to configure a
|
* New ssh configuration variables (`ansible_ssh_common_args`, `ansible_ssh_extra_args`) can be used to configure a
|
||||||
per-group or per-host ssh ProxyCommand or set any other ssh options.
|
per-group or per-host ssh ProxyCommand or set any other ssh options.
|
||||||
`ansible_ssh_extra_args` is used to set options that are accepted only by ssh (not sftp or scp, which have their own analogous settings).
|
`ansible_ssh_extra_args` is used to set options that are accepted only by ssh (not sftp or scp, which have their own analogous settings).
|
||||||
|
|
|
@ -3,7 +3,7 @@ Committers Guidelines (for people with commit rights to Ansible on GitHub)
|
||||||
|
|
||||||
These are the guidelines for people with commit access to Ansible. Committers are essentially acting as members of the Ansible Core team, although not necessarily as an employee of Ansible and Red Hat. Please read the guidelines before you commit.
|
These are the guidelines for people with commit access to Ansible. Committers are essentially acting as members of the Ansible Core team, although not necessarily as an employee of Ansible and Red Hat. Please read the guidelines before you commit.
|
||||||
|
|
||||||
These guidelines apply to everyone. At the same time, this ISN’T a process document. So just use good judgement. You’ve been given commit access because we trust your judgement.
|
These guidelines apply to everyone. At the same time, this ISN'T a process document. So just use good judgement. You've been given commit access because we trust your judgement.
|
||||||
|
|
||||||
That said, use the trust wisely.
|
That said, use the trust wisely.
|
||||||
|
|
||||||
|
@ -19,18 +19,18 @@ Any other new features and changes to high level design should go through the pr
|
||||||
Our Workflow on GitHub
|
Our Workflow on GitHub
|
||||||
======================
|
======================
|
||||||
|
|
||||||
As a committer, you may already know this, but our workflow forms a lot of our team policies. Please ensure you’re aware of the following workflow steps:
|
As a committer, you may already know this, but our workflow forms a lot of our team policies. Please ensure you're aware of the following workflow steps:
|
||||||
|
|
||||||
* Fork the repository upon which you want to do some work to your own personal repository
|
* Fork the repository upon which you want to do some work to your own personal repository
|
||||||
* Work on the specific branch upon which you need to commit
|
* Work on the specific branch upon which you need to commit
|
||||||
* Create a Pull Request back to the Ansible repository and tag the people you would like to review; assign someone as the primary “owner” of your request
|
* Create a Pull Request back to the Ansible repository and tag the people you would like to review; assign someone as the primary "owner" of your request
|
||||||
* Adjust code as necessary based on the Comments provided
|
* Adjust code as necessary based on the Comments provided
|
||||||
* Ask someone on the Core Team to do a final review and merge
|
* Ask someone on the Core Team to do a final review and merge
|
||||||
|
|
||||||
Addendum to workflow for Committers:
|
Addendum to workflow for Committers:
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
|
||||||
The Core Team is aware that this can be a difficult process at times. Sometimes, the team breaks the rules: Direct commits, merging their own PRs. This section is a set of guidelines. If you’re changing a comma in a doc, or making a very minor change, you can use your best judgement. This is another trust thing. The process is critical for any major change, but for little things or getting something done quickly, use your best judgement and make sure people on the team are aware of your work.
|
The Core Team is aware that this can be a difficult process at times. Sometimes, the team breaks the rules: Direct commits, merging their own PRs. This section is a set of guidelines. If you're changing a comma in a doc, or making a very minor change, you can use your best judgement. This is another trust thing. The process is critical for any major change, but for little things or getting something done quickly, use your best judgement and make sure people on the team are aware of your work.
|
||||||
|
|
||||||
Roles on Core
|
Roles on Core
|
||||||
=============
|
=============
|
||||||
|
@ -41,12 +41,12 @@ General Rules
|
||||||
=============
|
=============
|
||||||
Individuals with direct commit access to ansible/ansible are entrusted with powers that allow them to do a broad variety of things--probably more than we can write down. Rather than rules, treat these as general *guidelines*, individuals with this power are expected to use their best judgement.
|
Individuals with direct commit access to ansible/ansible are entrusted with powers that allow them to do a broad variety of things--probably more than we can write down. Rather than rules, treat these as general *guidelines*, individuals with this power are expected to use their best judgement.
|
||||||
|
|
||||||
* Don’t
|
* Don't
|
||||||
|
|
||||||
- Commit directly.
|
- Commit directly.
|
||||||
- Merge your own PRs. Someone else should have a chance to review and approve the PR merge. If you are a Core Committer, you have a small amount of leeway here for very minor changes.
|
- Merge your own PRs. Someone else should have a chance to review and approve the PR merge. If you are a Core Committer, you have a small amount of leeway here for very minor changes.
|
||||||
- Forget about alternate environments. Consider the alternatives--yes, people have bad environments, but they are the ones who need us the most.
|
- Forget about alternate environments. Consider the alternatives--yes, people have bad environments, but they are the ones who need us the most.
|
||||||
- Drag your community team members down. Always discuss the technical merits, but you should never address the person’s limitations (you can later go for beers and call them idiots, but not in IRC/Github/etc.).
|
- Drag your community team members down. Always discuss the technical merits, but you should never address the person's limitations (you can later go for beers and call them idiots, but not in IRC/Github/etc.).
|
||||||
- Forget about the maintenance burden. Some things are really cool to have, but they might not be worth shoehorning in if the maintenance burden is too great.
|
- Forget about the maintenance burden. Some things are really cool to have, but they might not be worth shoehorning in if the maintenance burden is too great.
|
||||||
- Break playbooks. Always keep backwards compatibility in mind.
|
- Break playbooks. Always keep backwards compatibility in mind.
|
||||||
- Forget to keep it simple. Complexity breeds all kinds of problems.
|
- Forget to keep it simple. Complexity breeds all kinds of problems.
|
||||||
|
@ -55,7 +55,7 @@ Individuals with direct commit access to ansible/ansible are entrusted with powe
|
||||||
|
|
||||||
- Squash, avoid merges whenever possible, use github's squash commits or cherry pick if needed (bisect thanks you).
|
- Squash, avoid merges whenever possible, use github's squash commits or cherry pick if needed (bisect thanks you).
|
||||||
- Be active. Committers who have no activity on the project (through merges, triage, commits, etc.) will have their permissions suspended.
|
- Be active. Committers who have no activity on the project (through merges, triage, commits, etc.) will have their permissions suspended.
|
||||||
- Consider backwards compatibility (goes back to "don’t break existing playbooks").
|
- Consider backwards compatibility (goes back to "don't break existing playbooks").
|
||||||
- Write tests. PRs with tests are looked at with more priority than PRs without tests that should have them included. While not all changes require tests, be sure to add them for bug fixes or functionality changes.
|
- Write tests. PRs with tests are looked at with more priority than PRs without tests that should have them included. While not all changes require tests, be sure to add them for bug fixes or functionality changes.
|
||||||
- Discuss with other committers, specially when you are unsure of something.
|
- Discuss with other committers, specially when you are unsure of something.
|
||||||
- Document! If your PR is a new feature or a change to behavior, make sure you've updated all associated documentation or have notified the right people to do so. It also helps to add the version of Core against which this documentation is compatible (to avoid confusion with stable versus devel docs, for backwards compatibility, etc.).
|
- Document! If your PR is a new feature or a change to behavior, make sure you've updated all associated documentation or have notified the right people to do so. It also helps to add the version of Core against which this documentation is compatible (to avoid confusion with stable versus devel docs, for backwards compatibility, etc.).
|
||||||
|
|
|
@ -2,7 +2,7 @@ Community Information & Contributing
|
||||||
````````````````````````````````````
|
````````````````````````````````````
|
||||||
|
|
||||||
Ansible is an open source project designed to bring together administrators and developers of all kinds to collaborate on building
|
Ansible is an open source project designed to bring together administrators and developers of all kinds to collaborate on building
|
||||||
IT automation solutions that work well for them.
|
IT automation solutions that work well for them.
|
||||||
|
|
||||||
Should you wish to get more involved -- whether in terms of just asking a question, helping other users, introducing new people to Ansible, or helping with the software or documentation, we welcome your contributions to the project.
|
Should you wish to get more involved -- whether in terms of just asking a question, helping other users, introducing new people to Ansible, or helping with the software or documentation, we welcome your contributions to the project.
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ I've Got A Question
|
||||||
|
|
||||||
We're happy to help!
|
We're happy to help!
|
||||||
|
|
||||||
Ansible questions are best asked on the `Ansible Google Group Mailing List <http://groups.google.com/group/ansible-project>`_.
|
Ansible questions are best asked on the `Ansible Google Group Mailing List <http://groups.google.com/group/ansible-project>`_.
|
||||||
|
|
||||||
This is a very large high-traffic list for answering questions and sharing tips
|
This is a very large high-traffic list for answering questions and sharing tips
|
||||||
and tricks. Anyone can join, and email delivery is optional if you just want to read the group online. To cut down on spam, your first post is moderated, though posts are approved quickly.
|
and tricks. Anyone can join, and email delivery is optional if you just want to read the group online. To cut down on spam, your first post is moderated, though posts are approved quickly.
|
||||||
|
@ -42,10 +42,10 @@ This is a low-traffic read-only list, where we'll share release announcements an
|
||||||
I'd Like To Help Share and Promote Ansible
|
I'd Like To Help Share and Promote Ansible
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
You can help share Ansible with others by telling friends and colleagues, writing a blog post,
|
You can help share Ansible with others by telling friends and colleagues, writing a blog post,
|
||||||
or presenting at user groups (like DevOps groups or the local LUG).
|
or presenting at user groups (like DevOps groups or the local LUG).
|
||||||
|
|
||||||
You are also welcome to share slides on speakerdeck, sign up for a free account and tag it “Ansible”. On Twitter,
|
You are also welcome to share slides on speakerdeck, sign up for a free account and tag it "Ansible". On Twitter,
|
||||||
you can also share things with #ansible and may wish to `follow us <https://twitter.com/ansible>`_.
|
you can also share things with #ansible and may wish to `follow us <https://twitter.com/ansible>`_.
|
||||||
|
|
||||||
I'd Like To Help Ansible Move Faster
|
I'd Like To Help Ansible Move Faster
|
||||||
|
@ -73,31 +73,31 @@ more quickly.
|
||||||
Do not use the issue tracker for "how do I do this" type questions. These are great candidates
|
Do not use the issue tracker for "how do I do this" type questions. These are great candidates
|
||||||
for IRC or the mailing list instead where things are likely to be more of a discussion.
|
for IRC or the mailing list instead where things are likely to be more of a discussion.
|
||||||
|
|
||||||
To be respectful of reviewers' time and allow us to help everyone efficiently, please
|
To be respectful of reviewers' time and allow us to help everyone efficiently, please
|
||||||
provide minimal well-reduced and well-commented examples versus sharing your entire production
|
provide minimal well-reduced and well-commented examples versus sharing your entire production
|
||||||
playbook. Include playbook snippets and output where possible.
|
playbook. Include playbook snippets and output where possible.
|
||||||
|
|
||||||
When sharing YAML in playbooks, formatting can be preserved by using `code blocks <https://help.github.com/articles/creating-and-highlighting-code-blocks/>`_.
|
When sharing YAML in playbooks, formatting can be preserved by using `code blocks <https://help.github.com/articles/creating-and-highlighting-code-blocks/>`_.
|
||||||
|
|
||||||
For multiple-file content, we encourage use of gist.github.com. Online pastebin content can expire, so it's nice to have things around for a longer term if they
|
For multiple-file content, we encourage use of gist.github.com. Online pastebin content can expire, so it's nice to have things around for a longer term if they
|
||||||
are referenced in a ticket.
|
are referenced in a ticket.
|
||||||
|
|
||||||
If you are not sure if something is a bug yet, you are welcome to ask about something on
|
If you are not sure if something is a bug yet, you are welcome to ask about something on
|
||||||
the mailing list or IRC first.
|
the mailing list or IRC first.
|
||||||
|
|
||||||
As we are a very high volume project, if you determine that
|
As we are a very high volume project, if you determine that
|
||||||
you do have a bug, please be sure to open the issue yourself to ensure we have a record of
|
you do have a bug, please be sure to open the issue yourself to ensure we have a record of
|
||||||
it. Don’t rely on someone else in the community to file the bug report for you.
|
it. Don't rely on someone else in the community to file the bug report for you.
|
||||||
|
|
||||||
It may take some time to get to your report, see our information about priority flags below.
|
It may take some time to get to your report, see our information about priority flags below.
|
||||||
|
|
||||||
I'd Like To Help With Documentation
|
I'd Like To Help With Documentation
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
Ansible documentation is a community project too!
|
Ansible documentation is a community project too!
|
||||||
|
|
||||||
If you would like to help with the
|
If you would like to help with the
|
||||||
documentation, whether correcting a typo or improving a section, or maybe even
|
documentation, whether correcting a typo or improving a section, or maybe even
|
||||||
documenting a new feature, submit a GitHub pull request to the code that
|
documenting a new feature, submit a GitHub pull request to the code that
|
||||||
lives in the ``docsite/rst`` subdirectory of the project for most pages, and there is an "Edit on GitHub"
|
lives in the ``docsite/rst`` subdirectory of the project for most pages, and there is an "Edit on GitHub"
|
||||||
link up on those.
|
link up on those.
|
||||||
|
@ -107,9 +107,9 @@ Module documentation is generated from a ``DOCUMENTATION`` structure embedded in
|
||||||
For more information on module documentation see `How to document modules <http://docs.ansible.com/ansible/dev_guide/developing_modules_documenting.html>`_.
|
For more information on module documentation see `How to document modules <http://docs.ansible.com/ansible/dev_guide/developing_modules_documenting.html>`_.
|
||||||
|
|
||||||
Aside from modules, the main docs are in restructured text
|
Aside from modules, the main docs are in restructured text
|
||||||
format.
|
format.
|
||||||
|
|
||||||
If you aren’t comfortable with restructured text, you can also open a ticket on
|
If you aren't comfortable with restructured text, you can also open a ticket on
|
||||||
GitHub about any errors you spot or sections you would like to see added. For more information
|
GitHub about any errors you spot or sections you would like to see added. For more information
|
||||||
on creating pull requests, please refer to the
|
on creating pull requests, please refer to the
|
||||||
`GitHub help guide <https://help.github.com/articles/using-pull-requests>`_.
|
`GitHub help guide <https://help.github.com/articles/using-pull-requests>`_.
|
||||||
|
@ -155,7 +155,7 @@ If you make a mistake you do not need to close your PR. Instead, create a clean
|
||||||
with ``--force`` to overwrite the existing branch (permissible in this case as no one else should be using that
|
with ``--force`` to overwrite the existing branch (permissible in this case as no one else should be using that
|
||||||
branch as reference). Code comments won't be lost, they just won't be attached to the existing branch.
|
branch as reference). Code comments won't be lost, they just won't be attached to the existing branch.
|
||||||
|
|
||||||
We’ll then review your contributions and engage with you about questions and so on.
|
We'll then review your contributions and engage with you about questions and so on.
|
||||||
|
|
||||||
Because we have a very large and active community it may take awhile to get your contributions
|
Because we have a very large and active community it may take awhile to get your contributions
|
||||||
in! See the notes about priorities in a later section for understanding our work queue.
|
in! See the notes about priorities in a later section for understanding our work queue.
|
||||||
|
@ -172,7 +172,7 @@ are interested in writing new modules to be included in the core Ansible distrib
|
||||||
to the `module development documentation <http://docs.ansible.com/developing_modules.html>`_.
|
to the `module development documentation <http://docs.ansible.com/developing_modules.html>`_.
|
||||||
|
|
||||||
Ansible's aesthetic encourages simple, readable code and consistent,
|
Ansible's aesthetic encourages simple, readable code and consistent,
|
||||||
conservatively extending, backwards-compatible improvements. When contributing code to Ansible,
|
conservatively extending, backwards-compatible improvements. When contributing code to Ansible,
|
||||||
please observe the following guidelines:
|
please observe the following guidelines:
|
||||||
|
|
||||||
- Code developed for Ansible needs to support Python2-2.6 or higher and Python3-3.5 or higher.
|
- Code developed for Ansible needs to support Python2-2.6 or higher and Python3-3.5 or higher.
|
||||||
|
@ -228,7 +228,7 @@ To subscribe to a group from a non-google account, you can send an email to the
|
||||||
IRC Meetings
|
IRC Meetings
|
||||||
------------
|
------------
|
||||||
|
|
||||||
The Ansible community holds regular IRC meetings on various topics, and anyone who is interested is invited to
|
The Ansible community holds regular IRC meetings on various topics, and anyone who is interested is invited to
|
||||||
participate. For more information about Ansible meetings, consult the `meeting schedule and agenda page <https://github.com/ansible/community/blob/master/meetings/README.md>`_.
|
participate. For more information about Ansible meetings, consult the `meeting schedule and agenda page <https://github.com/ansible/community/blob/master/meetings/README.md>`_.
|
||||||
|
|
||||||
Release Numbering
|
Release Numbering
|
||||||
|
@ -286,7 +286,7 @@ These labels don't really have a definition - they are a simple ordering. Howev
|
||||||
affecting a major module (yum, apt, etc) is likely to be prioritized higher than a module
|
affecting a major module (yum, apt, etc) is likely to be prioritized higher than a module
|
||||||
affecting a smaller number of users.
|
affecting a smaller number of users.
|
||||||
|
|
||||||
Since we place a strong emphasis on testing and code review, it may take a few months for a minor feature to get merged. This doesn't mean that we'll be exhausting all of the higher-priority queues before getting to your ticket; we will also take periodic sweeps through the lower priority queues and give them some attention as well, particularly in the area of new module changes.
|
Since we place a strong emphasis on testing and code review, it may take a few months for a minor feature to get merged. This doesn't mean that we'll be exhausting all of the higher-priority queues before getting to your ticket; we will also take periodic sweeps through the lower priority queues and give them some attention as well, particularly in the area of new module changes.
|
||||||
|
|
||||||
|
|
||||||
Every bit of effort helps - if you're wishing to expedite the inclusion of a P3 feature pull request for instance, the best thing you can do is help close P2 bug reports.
|
Every bit of effort helps - if you're wishing to expedite the inclusion of a P3 feature pull request for instance, the best thing you can do is help close P2 bug reports.
|
||||||
|
|
|
@ -41,9 +41,9 @@ Each module has at least one assigned maintainer, listed in a `maintainer's file
|
||||||
.. _Ansibullbot: https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md
|
.. _Ansibullbot: https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md
|
||||||
.. _maintainer's file: https://github.com/ansible/ansible/blob/devel/.github/BOTMETA.yml
|
.. _maintainer's file: https://github.com/ansible/ansible/blob/devel/.github/BOTMETA.yml
|
||||||
|
|
||||||
Some modules have no community maintainers assigned. In this case, the maintainer is listed as ``$team_ansible``. Ultimately, it’s our goal to have at least one community maintainer for every module.
|
Some modules have no community maintainers assigned. In this case, the maintainer is listed as ``$team_ansible``. Ultimately, it's our goal to have at least one community maintainer for every module.
|
||||||
|
|
||||||
The maintainer’s job is to review PRs and decide whether that PR should be merged (``shipit``) or revised (``needs_revision``).
|
The maintainer's job is to review PRs and decide whether that PR should be merged (``shipit``) or revised (``needs_revision``).
|
||||||
|
|
||||||
The ultimate goal of any pull request is to reach **shipit** status, where the Core team then decides whether the PR is ready to be merged. Not every PR that reaches the **shipit** label is actually ready to be merged, but the better our reviewers are, and the better our guidelines are, the more likely it will be that a PR that reaches **shipit** will be mergeable.
|
The ultimate goal of any pull request is to reach **shipit** status, where the Core team then decides whether the PR is ready to be merged. Not every PR that reaches the **shipit** label is actually ready to be merged, but the better our reviewers are, and the better our guidelines are, the more likely it will be that a PR that reaches **shipit** will be mergeable.
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ Workflow
|
||||||
|
|
||||||
Ansibullbot runs continuously. You can generally expect to see changes to your issue or pull request within thirty minutes. Ansibullbot examines every open pull request in the repositories, and enforces state roughly according to the following workflow:
|
Ansibullbot runs continuously. You can generally expect to see changes to your issue or pull request within thirty minutes. Ansibullbot examines every open pull request in the repositories, and enforces state roughly according to the following workflow:
|
||||||
|
|
||||||
- If a pull request has no workflow labels, it’s considered **new**. Files in the pull request are identified, and the maintainers of those files are pinged by the bot, along with instructions on how to review the pull request. (Note: sometimes we strip labels from a pull request to “reboot” this process.)
|
- If a pull request has no workflow labels, it's considered **new**. Files in the pull request are identified, and the maintainers of those files are pinged by the bot, along with instructions on how to review the pull request. (Note: sometimes we strip labels from a pull request to "reboot" this process.)
|
||||||
- If the module maintainer is not ``$team_ansible``, the pull request then goes into the **community_review** state.
|
- If the module maintainer is not ``$team_ansible``, the pull request then goes into the **community_review** state.
|
||||||
- If the module maintainer is ``$team_ansible``, the pull request then goes into the **core_review** state (and probably sits for a while).
|
- If the module maintainer is ``$team_ansible``, the pull request then goes into the **core_review** state (and probably sits for a while).
|
||||||
- If the pull request is in **community_review** and has received comments from the maintainer:
|
- If the pull request is in **community_review** and has received comments from the maintainer:
|
||||||
|
@ -110,4 +110,4 @@ Special Labels
|
||||||
|
|
||||||
- **new_plugin**: this is for new modules or plugins that are not yet in Ansible.
|
- **new_plugin**: this is for new modules or plugins that are not yet in Ansible.
|
||||||
|
|
||||||
**Note:** `new_plugin` kicks off a completely separate process, and frankly it doesn’t work very well at present. We’re working our best to improve this process.
|
**Note:** `new_plugin` kicks off a completely separate process, and frankly it doesn't work very well at present. We're working our best to improve this process.
|
||||||
|
|
|
@ -25,7 +25,7 @@ For multiple-file content, we encourage use of gist.github.com. Online pastebin
|
||||||
|
|
||||||
If you are not sure if something is a bug yet, you are welcome to ask about something on the mailing list or IRC first.
|
If you are not sure if something is a bug yet, you are welcome to ask about something on the mailing list or IRC first.
|
||||||
|
|
||||||
As we are a very high volume project, if you determine that you do have a bug, please be sure to open the issue yourself to ensure we have a record of it. Don’t rely on someone else in the community to file the bug report for you.
|
As we are a very high volume project, if you determine that you do have a bug, please be sure to open the issue yourself to ensure we have a record of it. Don't rely on someone else in the community to file the bug report for you.
|
||||||
|
|
||||||
Requesting a feature
|
Requesting a feature
|
||||||
====================
|
====================
|
||||||
|
|
|
@ -55,7 +55,7 @@ The complete module metadata specification is here: `Ansible metadata block <htt
|
||||||
* Examples--include them whenever possible and make sure they are reproducible.
|
* Examples--include them whenever possible and make sure they are reproducible.
|
||||||
* Document the return structure of the module. Refer to :ref:`common_return_values` and :ref:`module_documenting` for additional information.
|
* Document the return structure of the module. Refer to :ref:`common_return_values` and :ref:`module_documenting` for additional information.
|
||||||
* Predictable user interface: This is a particularly important section as it is also an area where we need significant improvements.
|
* Predictable user interface: This is a particularly important section as it is also an area where we need significant improvements.
|
||||||
* Name consistency across modules (we’ve gotten better at this, but we still have many deviations).
|
* Name consistency across modules (we've gotten better at this, but we still have many deviations).
|
||||||
* Declarative operation (not CRUD)--this makes it easy for a user not to care what the existing state is, just about the final state. ``started/stopped``, ``present/absent``--don't overload options too much. It is preferable to add a new, simple option than to add choices/states that don't fit with existing ones.
|
* Declarative operation (not CRUD)--this makes it easy for a user not to care what the existing state is, just about the final state. ``started/stopped``, ``present/absent``--don't overload options too much. It is preferable to add a new, simple option than to add choices/states that don't fit with existing ones.
|
||||||
* Keep options small, having them take large data structures might save us a few tasks, but adds a complex requirement that we cannot easily validate before passing on to the module.
|
* Keep options small, having them take large data structures might save us a few tasks, but adds a complex requirement that we cannot easily validate before passing on to the module.
|
||||||
* Allow an "expert mode". This may sound like the absolute opposite of the previous one, but it is always best to let expert users deal with complex data. This requires different modules in some cases, so that you end up having one (1) expert module and several 'piecemeal' ones (ec2_vpc_net?). The reason for this is not, as many users express, because it allows a single task and keeps plays small (which just moves the data complexity into vars files, leaving you with a slightly different structure in another YAML file). It does, however, allow for a more 'atomic' operation against the underlying APIs and services.
|
* Allow an "expert mode". This may sound like the absolute opposite of the previous one, but it is always best to let expert users deal with complex data. This requires different modules in some cases, so that you end up having one (1) expert module and several 'piecemeal' ones (ec2_vpc_net?). The reason for this is not, as many users express, because it allows a single task and keeps plays small (which just moves the data complexity into vars files, leaving you with a slightly different structure in another YAML file). It does, however, allow for a more 'atomic' operation against the underlying APIs and services.
|
||||||
|
|
|
@ -109,11 +109,11 @@ Structure
|
||||||
Fields
|
Fields
|
||||||
^^^^^^
|
^^^^^^
|
||||||
|
|
||||||
:metadata_version: An “X.Y” formatted string. X and Y are integers which
|
:metadata_version: An "X.Y" formatted string. X and Y are integers which
|
||||||
define the metadata format version. Modules shipped with Ansible are
|
define the metadata format version. Modules shipped with Ansible are
|
||||||
tied to an Ansible release, so we will only ship with a single version
|
tied to an Ansible release, so we will only ship with a single version
|
||||||
of the metadata. We’ll increment Y if we add fields or legal values
|
of the metadata. We'll increment Y if we add fields or legal values
|
||||||
to an existing field. We’ll increment X if we remove fields or values
|
to an existing field. We'll increment X if we remove fields or values
|
||||||
or change the type or meaning of a field.
|
or change the type or meaning of a field.
|
||||||
Current metadata_version is "1.1"
|
Current metadata_version is "1.1"
|
||||||
:supported_by: This field records who supports the module.
|
:supported_by: This field records who supports the module.
|
||||||
|
@ -130,13 +130,13 @@ Fields
|
||||||
`Modules Support <http://docs.ansible.com/ansible/modules_support.html>`_.
|
`Modules Support <http://docs.ansible.com/ansible/modules_support.html>`_.
|
||||||
|
|
||||||
:status: This field records information about the module that is
|
:status: This field records information about the module that is
|
||||||
important to the end user. It’s a list of strings. The default value
|
important to the end user. It's a list of strings. The default value
|
||||||
is a single element list [“preview”]. The following strings are valid
|
is a single element list ["preview"]. The following strings are valid
|
||||||
statuses and have the following meanings:
|
statuses and have the following meanings:
|
||||||
|
|
||||||
:stableinterface: This means that the module’s parameters are
|
:stableinterface: This means that the module's parameters are
|
||||||
stable. Every effort will be made not to remove parameters or change
|
stable. Every effort will be made not to remove parameters or change
|
||||||
their meaning. It is not a rating of the module’s code quality.
|
their meaning. It is not a rating of the module's code quality.
|
||||||
:preview: This module is a tech preview. This means it may be
|
:preview: This module is a tech preview. This means it may be
|
||||||
unstable, the parameters may change, or it may require libraries or
|
unstable, the parameters may change, or it may require libraries or
|
||||||
web services that are themselves subject to incompatible changes.
|
web services that are themselves subject to incompatible changes.
|
||||||
|
|
|
@ -25,7 +25,7 @@ Inventory
|
||||||
|
|
||||||
By default, Ansible represents what machines it manages using a very simple INI file that puts all of your managed machines in groups of your own choosing.
|
By default, Ansible represents what machines it manages using a very simple INI file that puts all of your managed machines in groups of your own choosing.
|
||||||
|
|
||||||
To add new machines, there is no additional SSL signing server involved, so there's never any hassle deciding why a particular machine didn’t get linked up due to obscure NTP or DNS issues.
|
To add new machines, there is no additional SSL signing server involved, so there's never any hassle deciding why a particular machine didn't get linked up due to obscure NTP or DNS issues.
|
||||||
|
|
||||||
If there's another source of truth in your infrastructure, Ansible can also plugin to that, such as drawing inventory, group, and variable information from sources like EC2, Rackspace, OpenStack, and more.
|
If there's another source of truth in your infrastructure, Ansible can also plugin to that, such as drawing inventory, group, and variable information from sources like EC2, Rackspace, OpenStack, and more.
|
||||||
|
|
||||||
|
@ -69,4 +69,4 @@ Here's what a simple playbook looks like::
|
||||||
Extending Ansible with Plug-ins and the API
|
Extending Ansible with Plug-ins and the API
|
||||||
````````````````````````````````````````````
|
````````````````````````````````````````````
|
||||||
|
|
||||||
Should you want to write your own, Ansible modules can be written in any language that can return JSON (Ruby, Python, bash, etc). Inventory can also plug in to any datasource by writing a program that speaks to that datasource and returns JSON. There's also various Python APIs for extending Ansible’s connection types (SSH is not the only transport possible), callbacks (how Ansible logs, etc), and even for adding new server side behaviors.
|
Should you want to write your own, Ansible modules can be written in any language that can return JSON (Ruby, Python, bash, etc). Inventory can also plug in to any datasource by writing a program that speaks to that datasource and returns JSON. There's also various Python APIs for extending Ansible's connection types (SSH is not the only transport possible), callbacks (how Ansible logs, etc), and even for adding new server side behaviors.
|
||||||
|
|
|
@ -110,7 +110,7 @@ Never use "we" when writing. "We" aren't doing anything on the user side. Ansibl
|
||||||
|
|
||||||
Hyphen
|
Hyphen
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
The hyphen’s primary function is the formation of certain compound terms. Do not use a hyphen unless it serves a purpose. If a compound adjective cannot be misread or, as with many psychological terms, its meaning is established, a hyphen is not necessary.
|
The hyphen's primary function is the formation of certain compound terms. Do not use a hyphen unless it serves a purpose. If a compound adjective cannot be misread or, as with many psychological terms, its meaning is established, a hyphen is not necessary.
|
||||||
|
|
||||||
Use hyphens to avoid ambiguity or confusion:
|
Use hyphens to avoid ambiguity or confusion:
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ Use to describes where to place options for a command, but not where to type the
|
||||||
Daylight saving time (DST)
|
Daylight saving time (DST)
|
||||||
+++++++++++++++++++++++++++++++
|
+++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
Correct. Do not use daylight savings time. Daylight Saving Time (DST) is often misspelled “Daylight Savings”, with an “s” at the end. Other common variations are “Summer Time”and “Daylight-Saving Time”. (http://www.timeanddate.com/time/dst/daylight-savings-time.html)
|
Correct. Do not use daylight savings time. Daylight Saving Time (DST) is often misspelled "Daylight Savings", with an "s" at the end. Other common variations are "Summer Time"and "Daylight-Saving Time". (http://www.timeanddate.com/time/dst/daylight-savings-time.html)
|
||||||
|
|
||||||
|
|
||||||
Download
|
Download
|
||||||
|
@ -99,7 +99,7 @@ When used as a verb, fail over is two words since there can be different tenses
|
||||||
|
|
||||||
Fewer
|
Fewer
|
||||||
+++++++++++++++++++
|
+++++++++++++++++++
|
||||||
Fewer is used with plural nouns. Think things you could count. Time, money, distance, and weight are often listed as exceptions to the traditional “can you count it” rule, often thought of a singular amounts (the work will take less than 5 hours, for example).
|
Fewer is used with plural nouns. Think things you could count. Time, money, distance, and weight are often listed as exceptions to the traditional "can you count it" rule, often thought of a singular amounts (the work will take less than 5 hours, for example).
|
||||||
|
|
||||||
File name
|
File name
|
||||||
+++++++++++++
|
+++++++++++++
|
||||||
|
|
|
@ -13,8 +13,8 @@ This style guide incorporates current Ansible resources and information so that
|
||||||
|
|
||||||
<blockquote class="note info">
|
<blockquote class="note info">
|
||||||
|
|
||||||
“If you don't find it in the index, look very carefully through the entire catalogue.”
|
"If you don't find it in the index, look very carefully through the entire catalogue."
|
||||||
― Sears, Roebuck and Co., 1897 Sears Roebuck & Co. Catalogue
|
― Sears, Roebuck and Co., 1897 Sears Roebuck & Co. Catalogue
|
||||||
|
|
||||||
.. raw:: html
|
.. raw:: html
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
Sanity Tests » no-smart-quotes
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Smart quotes (``”“‘’``) should not be used. Use plain ascii quotes (``"'``) instead.
|
|
@ -40,11 +40,11 @@ There is now a detailed official tutorial describing `how to create a service pr
|
||||||
|
|
||||||
After stepping through the tutorial you will have:
|
After stepping through the tutorial you will have:
|
||||||
|
|
||||||
* Your Client ID, which is found in the “client id” box in the “Configure” page of your application in the Azure portal
|
* Your Client ID, which is found in the "client id" box in the "Configure" page of your application in the Azure portal
|
||||||
* Your Secret key, generated when you created the application. You cannot show the key after creation.
|
* Your Secret key, generated when you created the application. You cannot show the key after creation.
|
||||||
If you lost the key, you must create a new one in the “Configure” page of your application.
|
If you lost the key, you must create a new one in the "Configure" page of your application.
|
||||||
* And finally, a tenant ID. It’s a UUID (e.g. ABCDEFGH-1234-ABCD-1234-ABCDEFGHIJKL) pointing to the AD containing your
|
* And finally, a tenant ID. It's a UUID (e.g. ABCDEFGH-1234-ABCD-1234-ABCDEFGHIJKL) pointing to the AD containing your
|
||||||
application. You will find it in the URL from within the Azure portal, or in the “view endpoints” of any given URL.
|
application. You will find it in the URL from within the Azure portal, or in the "view endpoints" of any given URL.
|
||||||
|
|
||||||
|
|
||||||
Using Active Directory Username/Password
|
Using Active Directory Username/Password
|
||||||
|
|
|
@ -27,7 +27,7 @@ Bootstrapping BSD
|
||||||
As mentioned above, you can bootstrap Ansible with the ``raw`` module and remotely install Python on targets. The following example installs Python 2.7 which includes the json library required for full functionality of Ansible.
|
As mentioned above, you can bootstrap Ansible with the ``raw`` module and remotely install Python on targets. The following example installs Python 2.7 which includes the json library required for full functionality of Ansible.
|
||||||
On your control machine you can simply execute the following for most versions of FreeBSD::
|
On your control machine you can simply execute the following for most versions of FreeBSD::
|
||||||
|
|
||||||
ansible -m raw -a “pkg install -y python27” mybsdhost1
|
ansible -m raw -a "pkg install -y python27" mybsdhost1
|
||||||
|
|
||||||
Once this is done you can now use other Ansible modules apart from the ``raw`` module.
|
Once this is done you can now use other Ansible modules apart from the ``raw`` module.
|
||||||
|
|
||||||
|
|
|
@ -104,10 +104,10 @@ Installing the Control Machine
|
||||||
Latest Release Via Yum
|
Latest Release Via Yum
|
||||||
++++++++++++++++++++++
|
++++++++++++++++++++++
|
||||||
|
|
||||||
.. note:: We’ve changed how the Ansible community packages are distributed.
|
.. note:: We've changed how the Ansible community packages are distributed.
|
||||||
For users of RHEL/CentOS/Scientific Linux version 7, the Ansible community RPM
|
For users of RHEL/CentOS/Scientific Linux version 7, the Ansible community RPM
|
||||||
package will transition from the EPEL repository to the Extras channel. There will be no
|
package will transition from the EPEL repository to the Extras channel. There will be no
|
||||||
change for version 6 of RHEL/CentOS/Scientific Linux since Extras is not a part of version 6.
|
change for version 6 of RHEL/CentOS/Scientific Linux since Extras is not a part of version 6.
|
||||||
|
|
||||||
RPMs for RHEL7 are available from `the Extras channel <https://access.redhat.com/solutions/912213>`_.
|
RPMs for RHEL7 are available from `the Extras channel <https://access.redhat.com/solutions/912213>`_.
|
||||||
|
|
||||||
|
@ -120,11 +120,11 @@ Ansible will also have RPMs/YUM-repo available at `<https://releases.ansible.com
|
||||||
Ansible version 2.4 can manage earlier operating
|
Ansible version 2.4 can manage earlier operating
|
||||||
systems that contain Python 2.6 or higher.
|
systems that contain Python 2.6 or higher.
|
||||||
|
|
||||||
You can also build an RPM yourself. From the root of a checkout or tarball, use the ``make rpm`` command to build an RPM you can distribute and install.
|
You can also build an RPM yourself. From the root of a checkout or tarball, use the ``make rpm`` command to build an RPM you can distribute and install.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ git clone git://github.com/ansible/ansible.git
|
$ git clone git://github.com/ansible/ansible.git
|
||||||
$ cd ./ansible
|
$ cd ./ansible
|
||||||
$ make rpm
|
$ make rpm
|
||||||
$ sudo rpm -Uvh ./rpm-build/ansible-*.noarch.rpm
|
$ sudo rpm -Uvh ./rpm-build/ansible-*.noarch.rpm
|
||||||
|
|
|
@ -477,7 +477,7 @@ Here is an example of how to instantly deploy to created containers::
|
||||||
:doc:`intro_adhoc`
|
:doc:`intro_adhoc`
|
||||||
Examples of basic commands
|
Examples of basic commands
|
||||||
:doc:`playbooks`
|
:doc:`playbooks`
|
||||||
Learning Ansible’s configuration, deployment, and orchestration language.
|
Learning Ansible's configuration, deployment, and orchestration language.
|
||||||
`Mailing List <http://groups.google.com/group/ansible-project>`_
|
`Mailing List <http://groups.google.com/group/ansible-project>`_
|
||||||
Questions? Help? Ideas? Stop by the list on Google Groups
|
Questions? Help? Ideas? Stop by the list on Google Groups
|
||||||
`irc.freenode.net <http://irc.freenode.net>`_
|
`irc.freenode.net <http://irc.freenode.net>`_
|
||||||
|
|
|
@ -32,9 +32,9 @@ Issue Reporting
|
||||||
|
|
||||||
If you believe you have found a bug in a module and are already running the latest stable or development version of Ansible, first look at the `issue tracker in the Ansible repo <https://github.com/ansible/ansible/issues>`_ to see if an issue has already been filed. If not, please file one.
|
If you believe you have found a bug in a module and are already running the latest stable or development version of Ansible, first look at the `issue tracker in the Ansible repo <https://github.com/ansible/ansible/issues>`_ to see if an issue has already been filed. If not, please file one.
|
||||||
|
|
||||||
Should you have a question rather than a bug report, inquiries are welcome on the `ansible-project Google group <https://groups.google.com/forum/#%21forum/ansible-project>`_ or on Ansible’s “#ansible” channel, located on irc.freenode.net.
|
Should you have a question rather than a bug report, inquiries are welcome on the `ansible-project Google group <https://groups.google.com/forum/#%21forum/ansible-project>`_ or on Ansible's "#ansible" channel, located on irc.freenode.net.
|
||||||
|
|
||||||
For development-oriented topics, use the `ansible-devel Google group <https://groups.google.com/forum/#%21forum/ansible-devel>`_ or Ansible’s #ansible and #ansible-devel channels, located on irc.freenode.net. You should also read :doc:`Community Information & Contributing <community>`, :doc:`Testing Ansible <dev_guide/testing>`, and :doc:`Developing Modules <dev_guide/developing_modules>`.
|
For development-oriented topics, use the `ansible-devel Google group <https://groups.google.com/forum/#%21forum/ansible-devel>`_ or Ansible's #ansible and #ansible-devel channels, located on irc.freenode.net. You should also read :doc:`Community Information & Contributing <community>`, :doc:`Testing Ansible <dev_guide/testing>`, and :doc:`Developing Modules <dev_guide/developing_modules>`.
|
||||||
|
|
||||||
The modules are hosted on GitHub in a subdirectory of the `Ansible <https://github.com/ansible/ansible/tree/devel/lib/ansible/modules>`_ repo.
|
The modules are hosted on GitHub in a subdirectory of the `Ansible <https://github.com/ansible/ansible/tree/devel/lib/ansible/modules>`_ repo.
|
||||||
|
|
||||||
|
|
|
@ -78,13 +78,13 @@ You can use any crypt scheme supported by 'Passlib':
|
||||||
- *sun_md5_crypt* - Sun MD5 Crypt
|
- *sun_md5_crypt* - Sun MD5 Crypt
|
||||||
- *sha256_crypt* - SHA-256 Crypt
|
- *sha256_crypt* - SHA-256 Crypt
|
||||||
- *sha512_crypt* - SHA-512 Crypt
|
- *sha512_crypt* - SHA-512 Crypt
|
||||||
- *apr_md5_crypt* - Apache’s MD5-Crypt variant
|
- *apr_md5_crypt* - Apache's MD5-Crypt variant
|
||||||
- *phpass* - PHPass’ Portable Hash
|
- *phpass* - PHPass' Portable Hash
|
||||||
- *pbkdf2_digest* - Generic PBKDF2 Hashes
|
- *pbkdf2_digest* - Generic PBKDF2 Hashes
|
||||||
- *cta_pbkdf2_sha1* - Cryptacular’s PBKDF2 hash
|
- *cta_pbkdf2_sha1* - Cryptacular's PBKDF2 hash
|
||||||
- *dlitz_pbkdf2_sha1* - Dwayne Litzenberger’s PBKDF2 hash
|
- *dlitz_pbkdf2_sha1* - Dwayne Litzenberger's PBKDF2 hash
|
||||||
- *scram* - SCRAM Hash
|
- *scram* - SCRAM Hash
|
||||||
- *bsd_nthash* - FreeBSD’s MCF-compatible nthash encoding
|
- *bsd_nthash* - FreeBSD's MCF-compatible nthash encoding
|
||||||
|
|
||||||
However, the only parameters accepted are 'salt' or 'salt_size'. You can use your own salt using
|
However, the only parameters accepted are 'salt' or 'salt_size'. You can use your own salt using
|
||||||
'salt', or have one generated automatically using 'salt_size'. If nothing is specified, a salt
|
'salt', or have one generated automatically using 'salt_size'. If nothing is specified, a salt
|
||||||
|
|
|
@ -109,7 +109,7 @@ While all items listed here will show a deprecation warning message, they still
|
||||||
|
|
||||||
* Bare variables in ``with_`` loops should instead use the ``"{ {var }}"`` syntax, which helps eliminate ambiguity.
|
* Bare variables in ``with_`` loops should instead use the ``"{ {var }}"`` syntax, which helps eliminate ambiguity.
|
||||||
* The ansible-galaxy text format requirements file. Users should use the YAML format for requirements instead.
|
* The ansible-galaxy text format requirements file. Users should use the YAML format for requirements instead.
|
||||||
* Undefined variables within a ``with_`` loop’s list currently do not interrupt the loop, but they do issue a warning; in the future, they will issue an error.
|
* Undefined variables within a ``with_`` loop's list currently do not interrupt the loop, but they do issue a warning; in the future, they will issue an error.
|
||||||
* Using dictionary variables to set all task parameters is unsafe and will be removed in a future version. For example::
|
* Using dictionary variables to set all task parameters is unsafe and will be removed in a future version. For example::
|
||||||
|
|
||||||
- hosts: localhost
|
- hosts: localhost
|
||||||
|
@ -129,8 +129,8 @@ While all items listed here will show a deprecation warning message, they still
|
||||||
|
|
||||||
* Host patterns should use a comma (,) or colon (:) instead of a semicolon (;) to separate hosts/groups in the pattern.
|
* Host patterns should use a comma (,) or colon (:) instead of a semicolon (;) to separate hosts/groups in the pattern.
|
||||||
* Ranges specified in host patterns should use the [x:y] syntax, instead of [x-y].
|
* Ranges specified in host patterns should use the [x:y] syntax, instead of [x-y].
|
||||||
* Playbooks using privilege escalation should always use “become*” options rather than the old su*/sudo* options.
|
* Playbooks using privilege escalation should always use "become*" options rather than the old su*/sudo* options.
|
||||||
* The “short form” for vars_prompt is no longer supported.
|
* The "short form" for vars_prompt is no longer supported.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
vars_prompt:
|
vars_prompt:
|
||||||
|
@ -148,7 +148,7 @@ Should now be::
|
||||||
a: 1
|
a: 1
|
||||||
|
|
||||||
* Setting any_errors_fatal on a task is no longer supported. This should be set at the play level only.
|
* Setting any_errors_fatal on a task is no longer supported. This should be set at the play level only.
|
||||||
* Bare variables in the `environment` dictionary (for plays/tasks/etc.) are no longer supported. Variables specified there should use the full variable syntax: ‘{{foo}}’.
|
* Bare variables in the `environment` dictionary (for plays/tasks/etc.) are no longer supported. Variables specified there should use the full variable syntax: '{{foo}}'.
|
||||||
* Tags (or any directive) should no longer be specified with other parameters in a task include. Instead, they should be specified as an option on the task.
|
* Tags (or any directive) should no longer be specified with other parameters in a task include. Instead, they should be specified as an option on the task.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ Should now be::
|
||||||
- include_tasks: foo.yml
|
- include_tasks: foo.yml
|
||||||
tags: [a, b, c]
|
tags: [a, b, c]
|
||||||
|
|
||||||
* The first_available_file option on tasks has been deprecated. Users should use the with_first_found option or lookup (‘first_found’, …) plugin.
|
* The first_available_file option on tasks has been deprecated. Users should use the with_first_found option or lookup ('first_found', …) plugin.
|
||||||
|
|
||||||
|
|
||||||
Other caveats
|
Other caveats
|
||||||
|
|
|
@ -95,11 +95,11 @@ Expand module diff support (already in progress in devel)
|
||||||
|
|
||||||
Other
|
Other
|
||||||
-----
|
-----
|
||||||
Things being kicking down the road that we said we’d do
|
Things being kicking down the road that we said we'd do
|
||||||
|
|
||||||
- NOT remerging core with ansible/ansible this release cycle
|
- NOT remerging core with ansible/ansible this release cycle
|
||||||
|
|
||||||
Community
|
Community
|
||||||
---------
|
---------
|
||||||
- Define the process/ETA for reviewing PR’s from community
|
- Define the process/ETA for reviewing PR's from community
|
||||||
- Publish better docs and how-tos for submitting code/features/fixes
|
- Publish better docs and how-tos for submitting code/features/fixes
|
||||||
|
|
|
@ -19,7 +19,7 @@ Extras split from Core
|
||||||
----------------------
|
----------------------
|
||||||
Lead by Jason M and Jimi-c (Targeting 2.2, could move into 2.3).
|
Lead by Jason M and Jimi-c (Targeting 2.2, could move into 2.3).
|
||||||
|
|
||||||
Targeted towards the 2.2 release or shortly after, we are planning on splitting Extras out of the “Ansible Core” project. That means that modules that are shipped with Ansible by default are **only** the modules in ansibl-modules-core. Ansible extras will become a separate project, managed by the community standard. Over the next few months we’re going to have a lot of work to do on getting all of the modules in the right places for this to work.
|
Targeted towards the 2.2 release or shortly after, we are planning on splitting Extras out of the "Ansible Core" project. That means that modules that are shipped with Ansible by default are **only** the modules in ansibl-modules-core. Ansible extras will become a separate project, managed by the community standard. Over the next few months we're going to have a lot of work to do on getting all of the modules in the right places for this to work.
|
||||||
|
|
||||||
- Create proposal (Jason or Jimi)
|
- Create proposal (Jason or Jimi)
|
||||||
- Review modules for correct location (extras v core)
|
- Review modules for correct location (extras v core)
|
||||||
|
@ -40,7 +40,7 @@ AWS
|
||||||
---
|
---
|
||||||
Lead by Ryan Brown
|
Lead by Ryan Brown
|
||||||
|
|
||||||
- Pagination for all AWS modules (generic pagination exists, but isn’t used everywhere) (bumped to 2.3)
|
- Pagination for all AWS modules (generic pagination exists, but isn't used everywhere) (bumped to 2.3)
|
||||||
- Refactoring ec2.py to be more digestible (bumped to 2.3)
|
- Refactoring ec2.py to be more digestible (bumped to 2.3)
|
||||||
- Fix inconsistencies with different authentication methods (STS, environment creds, ~/.aws/credentials) (done)
|
- Fix inconsistencies with different authentication methods (STS, environment creds, ~/.aws/credentials) (done)
|
||||||
- AWS Lambda modules (lambda_execute done, others pending)
|
- AWS Lambda modules (lambda_execute done, others pending)
|
||||||
|
@ -85,7 +85,7 @@ Lead by Matt D
|
||||||
|
|
||||||
- Feature parity
|
- Feature parity
|
||||||
|
|
||||||
- PS module API (mirror Python module API where appropriate). Note: We don’t necessarily like the current python module API (AnsibleModule is a huge class with many unrelated utility functions. Maybe we should redesign both at the same time?) (bumped to 2.3+ due to "moving target" uncertainty)
|
- PS module API (mirror Python module API where appropriate). Note: We don't necessarily like the current python module API (AnsibleModule is a huge class with many unrelated utility functions. Maybe we should redesign both at the same time?) (bumped to 2.3+ due to "moving target" uncertainty)
|
||||||
- Environment keyword support (done)
|
- Environment keyword support (done)
|
||||||
- win_shell/win_command (done)
|
- win_shell/win_command (done)
|
||||||
- Async support (done)
|
- Async support (done)
|
||||||
|
@ -117,7 +117,7 @@ Lead by Nate C, Peter S
|
||||||
|
|
||||||
Role revamp
|
Role revamp
|
||||||
-----------
|
-----------
|
||||||
- Implement ‘role revamp’ proposal to give users more control on role/task execution (Brian)
|
- Implement 'role revamp' proposal to give users more control on role/task execution (Brian)
|
||||||
|
|
||||||
- **https://github.com/ansible/proposals/blob/master/roles_revamp.md**
|
- **https://github.com/ansible/proposals/blob/master/roles_revamp.md**
|
||||||
|
|
||||||
|
@ -125,13 +125,13 @@ Vault
|
||||||
-----
|
-----
|
||||||
Lead by Jtanner, Adrian
|
Lead by Jtanner, Adrian
|
||||||
|
|
||||||
- *Extend ‘transparent vault file usage’ to other action plugins other than 'copy'(https://github.com/ansible/ansible/issues/7298)*
|
- *Extend 'transparent vault file usage' to other action plugins other than 'copy'(https://github.com/ansible/ansible/issues/7298)*
|
||||||
**done:** https://github.com/ansible/ansible/pull/16957
|
**done:** https://github.com/ansible/ansible/pull/16957
|
||||||
- Add ‘per variable’ vault support (!vault YAML directive, existing PR already) https://github.com/ansible/ansible/issues/13287 https://github.com/ansible/ansible/issues/14721
|
- Add 'per variable' vault support (!vault YAML directive, existing PR already) https://github.com/ansible/ansible/issues/13287 https://github.com/ansible/ansible/issues/14721
|
||||||
- Add vault/unvault filters https://github.com/ansible/ansible/issues/12087 (deferred to 2.3)
|
- Add vault/unvault filters https://github.com/ansible/ansible/issues/12087 (deferred to 2.3)
|
||||||
- Add vault support to lookups (likely deferred to 2.3 or until lookup plugins are revamped)
|
- Add vault support to lookups (likely deferred to 2.3 or until lookup plugins are revamped)
|
||||||
- Allow for multiple vault secrets https://github.com/ansible/ansible/issues/13243
|
- Allow for multiple vault secrets https://github.com/ansible/ansible/issues/13243
|
||||||
- Config option to turn ‘unvaulting’ failures into warnings https://github.com/ansible/ansible/issues/13244
|
- Config option to turn 'unvaulting' failures into warnings https://github.com/ansible/ansible/issues/13244
|
||||||
|
|
||||||
Python3
|
Python3
|
||||||
-------
|
-------
|
||||||
|
@ -139,7 +139,7 @@ Lead by Toshio
|
||||||
|
|
||||||
A note here from Jason M: Getting to complete, tested Python 3 is both
|
A note here from Jason M: Getting to complete, tested Python 3 is both
|
||||||
a critical task and one that has so much work and so many moving parts
|
a critical task and one that has so much work and so many moving parts
|
||||||
that we don’t expect this to be complete by the 2.2 release. Toshio will
|
that we don't expect this to be complete by the 2.2 release. Toshio will
|
||||||
lead this overall effort.
|
lead this overall effort.
|
||||||
|
|
||||||
- Motivation:
|
- Motivation:
|
||||||
|
@ -173,7 +173,7 @@ lead this overall effort.
|
||||||
- Update: copy of the six library (v1.4.1 for python2.4 compat) and unicode helpers are here (ansible.module_utils._text.{to_bytes,to_text,to_native})
|
- Update: copy of the six library (v1.4.1 for python2.4 compat) and unicode helpers are here (ansible.module_utils._text.{to_bytes,to_text,to_native})
|
||||||
- A few basic modules ported to python3
|
- A few basic modules ported to python3
|
||||||
|
|
||||||
- Stat module best example module since it’s essential.
|
- Stat module best example module since it's essential.
|
||||||
- Update:
|
- Update:
|
||||||
|
|
||||||
- A handful of modules like stat have been line-by-line ported. They should work reliably with few python3-specific bugs. All but three integration tests pass which means that most essential modules are working to some extent on Python3.
|
- A handful of modules like stat have been line-by-line ported. They should work reliably with few python3-specific bugs. All but three integration tests pass which means that most essential modules are working to some extent on Python3.
|
||||||
|
@ -186,7 +186,7 @@ lead this overall effort.
|
||||||
- lib/ansible/* and all modules now compile under Python-3.5
|
- lib/ansible/* and all modules now compile under Python-3.5
|
||||||
|
|
||||||
- Side work to do:
|
- Side work to do:
|
||||||
- Figure out best ways to run unit-tests on modules. Start unit-testing modules. This is going to become important so we don’t regress python3 or python2.4 support in modules (Going to largely punt on this for 2.2. Matt Clay is working on building us a testing foundation for the first half of 2.2 development so we’ll re-evaluate towards the middle of the dev cycle).
|
- Figure out best ways to run unit-tests on modules. Start unit-testing modules. This is going to become important so we don't regress python3 or python2.4 support in modules (Going to largely punt on this for 2.2. Matt Clay is working on building us a testing foundation for the first half of 2.2 development so we'll re-evaluate towards the middle of the dev cycle).
|
||||||
- More unit tests of module_utils
|
- More unit tests of module_utils
|
||||||
- More integration tests. Currently integration tests are the best way to test ansible modules so we have to rely on those.
|
- More integration tests. Currently integration tests are the best way to test ansible modules so we have to rely on those.
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@ Infrastructure Buildout and Changes
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
Lead by Matt Clay
|
Lead by Matt Clay
|
||||||
|
|
||||||
Another note from Jason M: A lot of this work is to ease the burden of CI, CI performance, increase our testing coverage and all of that sort of thing. It’s not necessarily feature work, but it’s \*\*critical\*\* to growing our product and our ability to get community changes in more securely and quickly.
|
Another note from Jason M: A lot of this work is to ease the burden of CI, CI performance, increase our testing coverage and all of that sort of thing. It's not necessarily feature work, but it's \*\*critical\*\* to growing our product and our ability to get community changes in more securely and quickly.
|
||||||
|
|
||||||
- **CI Performance**
|
- **CI Performance**
|
||||||
Reduce time spent waiting on CI for PRs. Combination of optimizing existing Travis setup and offloading work to other services. Will be impacted by available budget.
|
Reduce time spent waiting on CI for PRs. Combination of optimizing existing Travis setup and offloading work to other services. Will be impacted by available budget.
|
||||||
|
|
|
@ -46,7 +46,7 @@ Lead by nitzmahone
|
||||||
- Become support **(done/experimental)**
|
- Become support **(done/experimental)**
|
||||||
- Integrated kerberos ticket management (via ansible_user/ansible_password) **(done)**
|
- Integrated kerberos ticket management (via ansible_user/ansible_password) **(done)**
|
||||||
- Switch PS input encoding to BOM-less UTF8 **(done)**
|
- Switch PS input encoding to BOM-less UTF8 **(done)**
|
||||||
- Server 2016 support/testing (now RTM’d) **(partial)**
|
- Server 2016 support/testing (now RTM'd) **(partial)**
|
||||||
- Modularize Windows module_utils (allow N files) **(partial)**
|
- Modularize Windows module_utils (allow N files) **(partial)**
|
||||||
- Declarative argspec for PS / .NET **(bumped to 2.4)**
|
- Declarative argspec for PS / .NET **(bumped to 2.4)**
|
||||||
- Kerberos encryption (via notting, pywinrm/requests_kerberos/pykerberos) **(in progress, available in pywinrm post 2.3 release)**
|
- Kerberos encryption (via notting, pywinrm/requests_kerberos/pykerberos) **(in progress, available in pywinrm post 2.3 release)**
|
||||||
|
@ -98,8 +98,8 @@ Python3
|
||||||
|
|
||||||
- If users report bugs on python3, these should be fixed and will prioritize our work on porting other modules.
|
- If users report bugs on python3, these should be fixed and will prioritize our work on porting other modules.
|
||||||
|
|
||||||
- Still have to solve the python3-only and python2-only modules. Thinking of doing this via metadata. Will mean we have to use metadata at the module_common level. Will also mean we don’t support py2-only or py3-only old style python modules.
|
- Still have to solve the python3-only and python2-only modules. Thinking of doing this via metadata. Will mean we have to use metadata at the module_common level. Will also mean we don't support py2-only or py3-only old style python modules.
|
||||||
- Note: Most of the currently tested ansible features now run. But there’s still a lot of code that’s untested.
|
- Note: Most of the currently tested ansible features now run. But there's still a lot of code that's untested.
|
||||||
|
|
||||||
Testing and CI
|
Testing and CI
|
||||||
--------------
|
--------------
|
||||||
|
@ -157,7 +157,7 @@ Plugin Loader
|
||||||
|
|
||||||
ansible-ssh
|
ansible-ssh
|
||||||
-----------
|
-----------
|
||||||
- Add a ‘ansible-ssh’ convenience and debugging tool (will slip to 2.4)
|
- Add a 'ansible-ssh' convenience and debugging tool (will slip to 2.4)
|
||||||
- Tool to invoke an interactive ssh to a host with the same args/env/config that ansible would.
|
- Tool to invoke an interactive ssh to a host with the same args/env/config that ansible would.
|
||||||
- There are at least three external versions
|
- There are at least three external versions
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ Inventory
|
||||||
|
|
||||||
Facts
|
Facts
|
||||||
-----
|
-----
|
||||||
- Configurable list of ‘fact modules’ for ``gather_facts`` **(done)**
|
- Configurable list of 'fact modules' for ``gather_facts`` **(done)**
|
||||||
- Fact gathering policy finer grained **(done)**
|
- Fact gathering policy finer grained **(done)**
|
||||||
- Make ``setup.py``/``facts`` more pluggable **(done)**
|
- Make ``setup.py``/``facts`` more pluggable **(done)**
|
||||||
- Improve testing of ``setup.py``/``facts.py`` **(done)**
|
- Improve testing of ``setup.py``/``facts.py`` **(done)**
|
||||||
|
@ -104,8 +104,8 @@ Globalize Callbacks
|
||||||
-------------------
|
-------------------
|
||||||
**(pushed out to future release)**
|
**(pushed out to future release)**
|
||||||
- Make send_callback available to other code that cannot use it.
|
- Make send_callback available to other code that cannot use it.
|
||||||
- Would allow for ‘full formatting’ of output (see JSON callback)
|
- Would allow for 'full formatting' of output (see JSON callback)
|
||||||
- Fixes static ‘include’ display problem
|
- Fixes static 'include' display problem
|
||||||
|
|
||||||
Plugins
|
Plugins
|
||||||
-------
|
-------
|
||||||
|
@ -128,13 +128,13 @@ Runtime Check on Modules for Blacklisting
|
||||||
|
|
||||||
Disambiguate Includes
|
Disambiguate Includes
|
||||||
---------------------
|
---------------------
|
||||||
- Create import_x for ‘static includes’ (import_task, import_play, import_role)
|
- Create import_x for 'static includes' (import_task, import_play, import_role)
|
||||||
|
|
||||||
- Any directives are applied to the ‘imported’ tasks
|
- Any directives are applied to the 'imported' tasks
|
||||||
|
|
||||||
- Create include_x for ‘dynamic includes’ (include_task, include_role)
|
- Create include_x for 'dynamic includes' (include_task, include_role)
|
||||||
|
|
||||||
- Any directives apply to the ‘include’ itself
|
- Any directives apply to the 'include' itself
|
||||||
|
|
||||||
Windows
|
Windows
|
||||||
-------
|
-------
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Ansible 2.0 has deprecated the “ssh” from ``ansible_ssh_user``, ``ansible_ssh_host``, and ``ansible_ssh_port`` to become ``ansible_user``, ``ansible_host``, and ``ansible_port``. If you are using a version of Ansible prior to 2.0, you should continue using the older style variables (``ansible_ssh_*``). These shorter variables are ignored, without warning, in older versions of Ansible.
|
Ansible 2.0 has deprecated the "ssh" from ``ansible_ssh_user``, ``ansible_ssh_host``, and ``ansible_ssh_port`` to become ``ansible_user``, ``ansible_host``, and ``ansible_port``. If you are using a version of Ansible prior to 2.0, you should continue using the older style variables (``ansible_ssh_*``). These shorter variables are ignored, without warning, in older versions of Ansible.
|
||||||
|
|
|
@ -40,7 +40,7 @@ options:
|
||||||
required: false
|
required: false
|
||||||
service_plan:
|
service_plan:
|
||||||
description:
|
description:
|
||||||
- The service plan, either “ESSENTIALS” or “ADVANCED”.
|
- The service plan, either "ESSENTIALS" or "ADVANCED".
|
||||||
- MCP 2.0 Only.
|
- MCP 2.0 Only.
|
||||||
choices: [ESSENTIALS, ADVANCED]
|
choices: [ESSENTIALS, ADVANCED]
|
||||||
default: ESSENTIALS
|
default: ESSENTIALS
|
||||||
|
|
|
@ -136,7 +136,7 @@ options:
|
||||||
required: false
|
required: false
|
||||||
format:
|
format:
|
||||||
description:
|
description:
|
||||||
- Target drive’s backing file’s data format.
|
- Target drive's backing file's data format.
|
||||||
- Used only with clone
|
- Used only with clone
|
||||||
default: qcow2
|
default: qcow2
|
||||||
choices: [ "cloop", "cow", "qcow", "qcow2", "qed", "raw", "vmdk" ]
|
choices: [ "cloop", "cow", "qcow", "qcow2", "qed", "raw", "vmdk" ]
|
||||||
|
@ -162,7 +162,7 @@ options:
|
||||||
- Values allowed are - C("host="HOSTPCIID[;HOSTPCIID2...]",pcie="1|0",rombar="1|0",x-vga="1|0"").
|
- Values allowed are - C("host="HOSTPCIID[;HOSTPCIID2...]",pcie="1|0",rombar="1|0",x-vga="1|0"").
|
||||||
- The C(host) parameter is Host PCI device pass through. HOSTPCIID syntax is C(bus:dev.func) (hexadecimal numbers).
|
- The C(host) parameter is Host PCI device pass through. HOSTPCIID syntax is C(bus:dev.func) (hexadecimal numbers).
|
||||||
- C(pcie=boolean) I(default=0) Choose the PCI-express bus (needs the q35 machine model).
|
- C(pcie=boolean) I(default=0) Choose the PCI-express bus (needs the q35 machine model).
|
||||||
- C(rombar=boolean) I(default=1) Specify whether or not the device’s ROM will be visible in the guest’s memory map.
|
- C(rombar=boolean) I(default=1) Specify whether or not the device's ROM will be visible in the guest's memory map.
|
||||||
- C(x-vga=boolean) I(default=0) Enable vfio-vga device support.
|
- C(x-vga=boolean) I(default=0) Enable vfio-vga device support.
|
||||||
- /!\ This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.
|
- /!\ This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.
|
||||||
required: false
|
required: false
|
||||||
|
@ -187,7 +187,7 @@ options:
|
||||||
- Values allowed are - C("storage:size,format=value").
|
- Values allowed are - C("storage:size,format=value").
|
||||||
- C(storage) is the storage identifier where to create the disk.
|
- C(storage) is the storage identifier where to create the disk.
|
||||||
- C(size) is the size of the disk in GB.
|
- C(size) is the size of the disk in GB.
|
||||||
- C(format) is the drive’s backing file’s data format. C(qcow2|raw|subvol).
|
- C(format) is the drive's backing file's data format. C(qcow2|raw|subvol).
|
||||||
required: false
|
required: false
|
||||||
default: null
|
default: null
|
||||||
keyboard:
|
keyboard:
|
||||||
|
@ -327,7 +327,7 @@ options:
|
||||||
- Values allowed are - C("storage:size,format=value").
|
- Values allowed are - C("storage:size,format=value").
|
||||||
- C(storage) is the storage identifier where to create the disk.
|
- C(storage) is the storage identifier where to create the disk.
|
||||||
- C(size) is the size of the disk in GB.
|
- C(size) is the size of the disk in GB.
|
||||||
- C(format) is the drive’s backing file’s data format. C(qcow2|raw|subvol).
|
- C(format) is the drive's backing file's data format. C(qcow2|raw|subvol).
|
||||||
default: null
|
default: null
|
||||||
required: false
|
required: false
|
||||||
scsi:
|
scsi:
|
||||||
|
@ -337,7 +337,7 @@ options:
|
||||||
- Values allowed are - C("storage:size,format=value").
|
- Values allowed are - C("storage:size,format=value").
|
||||||
- C(storage) is the storage identifier where to create the disk.
|
- C(storage) is the storage identifier where to create the disk.
|
||||||
- C(size) is the size of the disk in GB.
|
- C(size) is the size of the disk in GB.
|
||||||
- C(format) is the drive’s backing file’s data format. C(qcow2|raw|subvol).
|
- C(format) is the drive's backing file's data format. C(qcow2|raw|subvol).
|
||||||
default: null
|
default: null
|
||||||
required: false
|
required: false
|
||||||
scsihw:
|
scsihw:
|
||||||
|
@ -469,7 +469,7 @@ options:
|
||||||
- Values allowed are - C("storage:size,format=value").
|
- Values allowed are - C("storage:size,format=value").
|
||||||
- C(storage) is the storage identifier where to create the disk.
|
- C(storage) is the storage identifier where to create the disk.
|
||||||
- C(size) is the size of the disk in GB.
|
- C(size) is the size of the disk in GB.
|
||||||
- C(format) is the drive’s backing file’s data format. C(qcow2|raw|subvol).
|
- C(format) is the drive's backing file's data format. C(qcow2|raw|subvol).
|
||||||
required: false
|
required: false
|
||||||
default: null
|
default: null
|
||||||
vmid:
|
vmid:
|
||||||
|
|
|
@ -98,7 +98,7 @@ options:
|
||||||
behavior:
|
behavior:
|
||||||
description:
|
description:
|
||||||
- the optional behavior that can be attached to the session when it
|
- the optional behavior that can be attached to the session when it
|
||||||
is created. This can be set to either ‘release’ or ‘delete’. This
|
is created. This can be set to either 'release' or 'delete'. This
|
||||||
controls the behavior when a session is invalidated.
|
controls the behavior when a session is invalidated.
|
||||||
default: release
|
default: release
|
||||||
required: false
|
required: false
|
||||||
|
|
|
@ -24,7 +24,7 @@ version_added: 2.0
|
||||||
requirements:
|
requirements:
|
||||||
- requests (either >= 2.0.0 for Python 3, or >= 1.0.0 for Python 2)
|
- requests (either >= 2.0.0 for Python 3, or >= 1.0.0 for Python 2)
|
||||||
notes:
|
notes:
|
||||||
- Check mode isn’t supported.
|
- Check mode isn't supported.
|
||||||
options:
|
options:
|
||||||
api_key:
|
api_key:
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -39,7 +39,7 @@ description:
|
||||||
The CNOS command is passed as an argument of the method.
|
The CNOS command is passed as an argument of the method.
|
||||||
This module functions the same as the cnos_command module.
|
This module functions the same as the cnos_command module.
|
||||||
The only exception is that the following inventory variable can be specified
|
The only exception is that the following inventory variable can be specified
|
||||||
[“condition = <flag string>”]
|
["condition = <flag string>"]
|
||||||
When this inventory variable is specified as the variable of a task, the command is executed for
|
When this inventory variable is specified as the variable of a task, the command is executed for
|
||||||
the network element that matches the flag string. Usually, commands are executed across a group
|
the network element that matches the flag string. Usually, commands are executed across a group
|
||||||
of network devices. When there is a requirement to skip the execution of the command on one or
|
of network devices. When there is a requirement to skip the execution of the command on one or
|
||||||
|
|
|
@ -39,7 +39,7 @@ description:
|
||||||
The configuration source can be a set of commands or a template written in the Jinja2 templating language.
|
The configuration source can be a set of commands or a template written in the Jinja2 templating language.
|
||||||
This module functions the same as the cnos_template module.
|
This module functions the same as the cnos_template module.
|
||||||
The only exception is that the following inventory variable can be specified
|
The only exception is that the following inventory variable can be specified
|
||||||
[“condition = <flag string>”]
|
["condition = <flag string>"]
|
||||||
When this inventory variable is specified as the variable of a task, the template is executed for
|
When this inventory variable is specified as the variable of a task, the template is executed for
|
||||||
the network element that matches the flag string. Usually, templates are used when commands are the
|
the network element that matches the flag string. Usually, templates are used when commands are the
|
||||||
same across a group of network devices. When there is a requirement to skip the execution of the
|
same across a group of network devices. When there is a requirement to skip the execution of the
|
||||||
|
|
|
@ -33,7 +33,7 @@ module: cnos_factory
|
||||||
author: "Dave Kasberg (@dkasberg)"
|
author: "Dave Kasberg (@dkasberg)"
|
||||||
short_description: Reset the switch's startup configuration to default (factory) on devices running Lenovo CNOS
|
short_description: Reset the switch's startup configuration to default (factory) on devices running Lenovo CNOS
|
||||||
description:
|
description:
|
||||||
- This module allows you to reset a switch’s startup configuration. The method provides a way to reset the
|
- This module allows you to reset a switch's startup configuration. The method provides a way to reset the
|
||||||
startup configuration to its factory settings. This is helpful when you want to move the switch to another
|
startup configuration to its factory settings. This is helpful when you want to move the switch to another
|
||||||
topology as a new network device.
|
topology as a new network device.
|
||||||
This module uses SSH to manage network device configuration.
|
This module uses SSH to manage network device configuration.
|
||||||
|
|
|
@ -35,7 +35,7 @@ short_description: Perform firmware upgrade/download from a remote server on dev
|
||||||
description:
|
description:
|
||||||
- This module allows you to work with switch firmware images. It provides a way to download a firmware image
|
- This module allows you to work with switch firmware images. It provides a way to download a firmware image
|
||||||
to a network device from a remote server using FTP, SFTP, TFTP, or SCP. The first step is to create a directory
|
to a network device from a remote server using FTP, SFTP, TFTP, or SCP. The first step is to create a directory
|
||||||
from where the remote server can be reached. The next step is to provide the full file path of the image’s
|
from where the remote server can be reached. The next step is to provide the full file path of the image's
|
||||||
location. Authentication details required by the remote server must be provided as well. By default, this
|
location. Authentication details required by the remote server must be provided as well. By default, this
|
||||||
method makes the newly downloaded firmware image the active image, which will be used by the switch during the
|
method makes the newly downloaded firmware image the active image, which will be used by the switch during the
|
||||||
next restart.
|
next restart.
|
||||||
|
|
|
@ -38,9 +38,9 @@ description:
|
||||||
of a switch from a remote server. This is achieved by using startup or running configurations of the target
|
of a switch from a remote server. This is achieved by using startup or running configurations of the target
|
||||||
device that were previously backed up to a remote server using FTP, SFTP, TFTP, or SCP.
|
device that were previously backed up to a remote server using FTP, SFTP, TFTP, or SCP.
|
||||||
The first step is to create a directory from where the remote server can be reached. The next step is to
|
The first step is to create a directory from where the remote server can be reached. The next step is to
|
||||||
provide the full file path of the backup configuration’s location. Authentication details required by the
|
provide the full file path of the backup configuration's location. Authentication details required by the
|
||||||
remote server must be provided as well.
|
remote server must be provided as well.
|
||||||
By default, this method overwrites the switch’s configuration file with the newly downloaded file.
|
By default, this method overwrites the switch's configuration file with the newly downloaded file.
|
||||||
This module uses SSH to manage network device configuration.
|
This module uses SSH to manage network device configuration.
|
||||||
The results of the operation will be placed in a directory named 'results'
|
The results of the operation will be placed in a directory named 'results'
|
||||||
that must be created by the user in their local directory to where the playbook is run.
|
that must be created by the user in their local directory to where the playbook is run.
|
||||||
|
|
|
@ -50,7 +50,7 @@ options:
|
||||||
worker:
|
worker:
|
||||||
choices: ['sync', 'eventlet', 'gevent', 'tornado ', 'gthread', 'gaiohttp']
|
choices: ['sync', 'eventlet', 'gevent', 'tornado ', 'gthread', 'gaiohttp']
|
||||||
description:
|
description:
|
||||||
- 'The type of workers to use. The default class (sync) should handle most “normal” types of workloads.'
|
- 'The type of workers to use. The default class (sync) should handle most "normal" types of workloads.'
|
||||||
user:
|
user:
|
||||||
description:
|
description:
|
||||||
- 'Switch worker processes to run as this user.'
|
- 'Switch worker processes to run as this user.'
|
||||||
|
|
|
@ -20,9 +20,9 @@ author: "Michael Gruener (@mgruener)"
|
||||||
version_added: "2.2"
|
version_added: "2.2"
|
||||||
short_description: Create SSL certificates with Let's Encrypt
|
short_description: Create SSL certificates with Let's Encrypt
|
||||||
description:
|
description:
|
||||||
- "Create and renew SSL certificates with Let's Encrypt. Let’s Encrypt is a
|
- "Create and renew SSL certificates with Let's Encrypt. Let's Encrypt is a
|
||||||
free, automated, and open certificate authority (CA), run for the
|
free, automated, and open certificate authority (CA), run for the
|
||||||
public’s benefit. For details see U(https://letsencrypt.org). The current
|
public's benefit. For details see U(https://letsencrypt.org). The current
|
||||||
implementation supports the http-01, tls-sni-02 and dns-01 challenges."
|
implementation supports the http-01, tls-sni-02 and dns-01 challenges."
|
||||||
- "To use this module, it has to be executed at least twice. Either as two
|
- "To use this module, it has to be executed at least twice. Either as two
|
||||||
different tasks in the same run or during multiple runs."
|
different tasks in the same run or during multiple runs."
|
||||||
|
|
|
@ -56,7 +56,7 @@ Variable | Description
|
||||||
`bgpArg5` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **as-set**, **summary-only**, name of the route map that controls where BGP route dampening is enabled, value to start reusing a route, administrative distance to routes inside the AS, value for maximum path numbers, **backdoor**, **mask**, **route-map**.
|
`bgpArg5` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **as-set**, **summary-only**, name of the route map that controls where BGP route dampening is enabled, value to start reusing a route, administrative distance to routes inside the AS, value for maximum path numbers, **backdoor**, **mask**, **route-map**.
|
||||||
`bgpArg6` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **summary-only**, **as-set**, value to start suppressing a route, administrative distance for local routes, IP subnet address mask, name of the route map.
|
`bgpArg6` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **summary-only**, **as-set**, value to start suppressing a route, administrative distance for local routes, IP subnet address mask, name of the route map.
|
||||||
`bgpArg7` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: maximum duration to suppress a stable route, **route-map**, **backdoor**.
|
`bgpArg7` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: maximum duration to suppress a stable route, **route-map**, **backdoor**.
|
||||||
`bgpArg8` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: time after which an unreachable route’s penalty is decreased by half, **backdoor**.
|
`bgpArg8` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: time after which an unreachable route's penalty is decreased by half, **backdoor**.
|
||||||
|
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
This role is an example of using the *cnos_image.py* Lenovo module in the context of CNOS switch configuration. This module allows you to work with switch firmware images. It provides a way to download a firmware image to a network device from a remote server using FTP, SFTP, TFTP, or SCP.
|
This role is an example of using the *cnos_image.py* Lenovo module in the context of CNOS switch configuration. This module allows you to work with switch firmware images. It provides a way to download a firmware image to a network device from a remote server using FTP, SFTP, TFTP, or SCP.
|
||||||
|
|
||||||
The first step is to create a directory from where the remote server can be reached. The next step is to provide the full file path of the image’s location. Authentication details required by the remote server must be provided as well.
|
The first step is to create a directory from where the remote server can be reached. The next step is to provide the full file path of the image's location. Authentication details required by the remote server must be provided as well.
|
||||||
|
|
||||||
By default, this method makes the newly downloaded firmware image the active image, which will be used by the switch during the next restart.
|
By default, this method makes the newly downloaded firmware image the active image, which will be used by the switch during the next restart.
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
|
|
||||||
This role is an example of using the *cnos_rollback.py* Lenovo module in the context of CNOS switch configuration.This module allows you to work with switch configurations. It provides a way to roll back configurations of a switch from a remote server. This is achieved by using startup or running configurations of the target device that were previously backed up to a remote server using FTP, SFTP, TFTP, or SCP.
|
This role is an example of using the *cnos_rollback.py* Lenovo module in the context of CNOS switch configuration.This module allows you to work with switch configurations. It provides a way to roll back configurations of a switch from a remote server. This is achieved by using startup or running configurations of the target device that were previously backed up to a remote server using FTP, SFTP, TFTP, or SCP.
|
||||||
|
|
||||||
The first step is to create a directory from where the remote server can be reached. The next step is to provide the full file path of the backup configuration’s location. Authentication details required by the remote server must be provided as well.
|
The first step is to create a directory from where the remote server can be reached. The next step is to provide the full file path of the backup configuration's location. Authentication details required by the remote server must be provided as well.
|
||||||
|
|
||||||
By default, this method overwrites the switch’s configuration file with the newly downloaded file.
|
By default, this method overwrites the switch's configuration file with the newly downloaded file.
|
||||||
|
|
||||||
The results of the operation can be viewed in *results* directory.
|
The results of the operation can be viewed in *results* directory.
|
||||||
|
|
||||||
|
|
23
test/sanity/code-smell/no-smart-quotes.sh
Executable file
23
test/sanity/code-smell/no-smart-quotes.sh
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# shellcheck disable=SC1015,SC1016
|
||||||
|
egrep -r '[‘’“”]' . \
|
||||||
|
--exclude-dir .git \
|
||||||
|
--exclude-dir .tox \
|
||||||
|
| grep -v \
|
||||||
|
-e './test/sanity/code-smell/no-smart-quotes.sh' \
|
||||||
|
-e './docs/docsite/rst/dev_guide/testing/sanity/no-smart-quotes.rst' \
|
||||||
|
-e './test/integration/targets/unicode/unicode.yml' \
|
||||||
|
-e '\.doctree matches$' \
|
||||||
|
-e '\.pickle matches$' \
|
||||||
|
-e './docs/docsite/_build/html/'
|
||||||
|
|
||||||
|
if [ $? -ne 1 ]; then
|
||||||
|
printf 'The file(s) listed above have non-ascii quotes.\n'
|
||||||
|
# shellcheck disable=SC1015,SC1016
|
||||||
|
printf 'Make sure all files use " and '"'"' as quotation marks\n'
|
||||||
|
printf 'These sed commands may be of help to you:\n'
|
||||||
|
# shellcheck disable=SC1015,SC1016
|
||||||
|
printf " sed 's/[”“]/\"/g' \$FILENAME -i && sed \"s/[‘’]/'/g\" \$FILENAME -i\\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Reference in a new issue