рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЙрдкрдХрд░рдг рдЕрд╡рд▓реЛрдХрди

1ред рдЙрджреНрджреЗрд╢реНрдп


рд▓рдХреНрд╖реНрдп рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬреЛ рддреАрди рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ Ansible рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди / рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ: VS рдХреЛрдб, рдПрдЯрдо, JetBrains PyCharm (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ IDE рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ)ред рдЯреВрд▓реНрд╕ рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ: рд▓рд┐рдВрдЯрд░, рдлреЙрд░реНрдореЗрдЯрд░реНрд╕ (рд╕реНрдкреАрдХрд░ рдЗрдВрдЧреНрд▓рд┐рд╢!), рд╕рд┐рдВрдЯреЗрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдСрдЯреЛ-рдХрдореНрдкреНрд▓реАрдЯред рд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ-рдореВрд▓реНрдпрд╛рдВрдХрдирддреНрдордХ рдирд┐рд░реНрдгрдп рдЬреЛ "рдЖрджрд░реНрд╢" рдЙрдкрдХрд░рдг рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд┐рдП рдЧрдП рдЯреВрд▓ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреЗрд╡рд▓ рд╡рд╣реА рдЬреЛ рдореИрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВред


2. рдореВрд▓реНрдпрд╛рдВрдХрди рдорд╛рдирджрдВрдб


рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдорд╛рдирдХ рд╕реВрдЪреА рд╣реИ:


  • рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рдкрд░ рд░реЗрдЯрд┐рдВрдЧред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрд╛рджрдХ рдХреЗ рдкрд╛рд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди / рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ "рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕" рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдлреАрдбрдмреИрдХ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред
  • рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ред рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рд▓реА рдЬрд╛рддреА рд╣реИред
  • рдЧрд┐рдердм рдкрд░ рд╕рд┐рддрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
  • рдХреЛрдб рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдХреНрд▓реЛрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддрд╛рдХрд┐ рд▓реЗрдЦ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рди рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПред рдЬрд┐рди рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдпреЛрдЧрджрд╛рди 5% рд╕реЗ рдХрдо рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  • рдЕрдВрддрд┐рдо рд╡рдЪрди рдХреА рддрд┐рдерд┐ред
  • README рд╕реЗ рд▓рд┐рдП рдЧрдП рдХрд╛рд░реНрдпред

3. рдЕрд╡рд▓реЛрдХрди


3.1 рдореМрдЬреВрджрд╛ рд╕рдореАрдХреНрд╖рд╛


рей.рез.рез рдЦреЛрдЬ


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд░реВрд╕реА рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдХреМрди рд╕реА рд╕рдореАрдХреНрд╖рд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╣реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджреЛ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред Google рдореЗрдВ рдЦреЛрдЬ рдХреА рдЧрдИ рдереАред рд░реВрд╕реА рдЦрдВрдб рдореЗрдВ рдореИрдВрдиреЗ рдХрд┐рди рд╢рдмреНрджреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЦреЛрдЬ рдХреА:


  • рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЙрдкрдХрд░рдг рдХреА рд╕рдореАрдХреНрд╖рд╛ тЖТ 0 рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рдгрд╛рдоред
  • рд╕рдореАрдХреНрд╖рд╛ рдпреЛрдЧреНрдп ide тЖТ 0 рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рдгрд╛рдоред
  • ansible тЖТ 0 .

Ansible , - .


:


  • ansible tools тЖТ 1 .
  • review ansible ide тЖТ 1 .

.


3.1.1 Ansible other tools and programs


Ansible. 95% Ansible, YAML Jinja2.


3.1.2 The best IDE for Ansible


. , Ansible. , .


3.2 VS Code


3.2.1


VS Code, . "ansible", (13 ), .


3.2.2 Ansible


:


  • тАФ 3.4 5 (12 ).
  • тАФ 224 950.
  • Github тАФ 54.
  • тАФ 21.08.2019. 2 .

README:


  • Auto completion. Auto completion Ansible directives, modules and plugins from Ansible doc, Auto completion for variables. Disable auto completion by setting ansible.autocompletion to false.
  • Code snippets. Press Ctrl + Space, Ansible playbook code snippets will show up.
  • Syntax highlighting. Enable syntax highlighting by setting files.associations to ansible in settings.json.
  • Yaml validation. Yaml validation by leverage Yaml language server.
  • Code navigation by Symbols, press Ctrl + Shift + O.
  • Hover over module names, to show module documentation. Disable hovering over by setting ansible.hover to false.
  • Run playbook from Docker.
  • Run playbook from local Ansible installation.
  • Run playbook from Cloud Shell.
  • Run playbook remotely via ssh.
  • Auto File Copy to remote host on saving.

cloc:


63 text files.
63 unique files.
 6 files ignored.
-------------------------------------------------------------------
Language         files          blank        comment           code
-------------------------------------------------------------------
JSON                14              0              0         451226
TypeScript          33            669             80           2943
Markdown             6             79              0            249
-------------------------------------------------------------------
SUM:                58            767             81         454543
-------------------------------------------------------------------

, PR issue , .


3.2.3 language-Ansible


:


  • тАФ 4.2 5 (6 ).
  • тАФ 92 212.
  • Github тАФ 10.
  • тАФ 15.01.2018.

( , README:


  • Jinja language
  • Jinja expressions for ansible conditions (when, changed_when, failed_when, check_mode)
  • Some YAML block scalar

, 6 .


cloc:


10 text files.
10 unique files.
 4 files ignored.
-------------------------------------------------------------------
Language         files          blank        comment           code
-------------------------------------------------------------------
YAML                 1             16              6            132
JSON                 3              0              0             95
Markdown             3             13              0             60
-------------------------------------------------------------------
SUM:                 7             29              6            287
-------------------------------------------------------------------

3.2.4 ansible-autocomplete


:


  • тАФ 5 5 (2 ).
  • тАФ 62 185.
  • Github тАФ 2.
  • тАФ 20.11.2017.

README . Atom, .


cloc:


17 text files.
17 unique files.
 5 files ignored.
-------------------------------------------------------------------
Language         files          blank        comment           code
-------------------------------------------------------------------
JSON                 7              7              0         148305
TypeScript           4             44              5            199
Python               2             28              2            132
Markdown             1              2              0              3
-------------------------------------------------------------------
SUM:                14             81              7         148639
-------------------------------------------------------------------

3.3 Atom


3.3.1


. "ansible" , . , 11 . , VS Code.


3.3.2 linter-ansible-linting


:


  • ( Github) тАФ 51.
  • тАФ 60 823.
  • Github тАФ 18.
  • тАФ 22.04.2020. .

README:


  • Linter-Ansible-Linting aims to provide functional and robust Ansible-Lint linting functionality within Atom.

cloc:


20 text files.
20 unique files.
 3 files ignored.
-------------------------------------------------------------------
Language         files          blank        comment           code
-------------------------------------------------------------------
JavaScript           3             46             28            565
Markdown             3             23              0             96
YAML                11             28             14             90
JSON                 1              0              0             49
-------------------------------------------------------------------
SUM:                18             97             42            800
-------------------------------------------------------------------

3.3.3 linter-ansible-syntax


:


  • ( Github) тАФ 25.
  • тАФ 24 819.
  • Github тАФ 4.
  • тАФ 22.04.2020. .

README:


  • Linter-Ansible-Syntax aims to provide functional and robust Ansible syntax check linting functionality within Atom.

cloc:


19 text files.
19 unique files.
5  files ignored.
-------------------------------------------------------------------
Language         files          blank        comment           code
-------------------------------------------------------------------
JavaScript           3             34             18            315
Markdown             3             17              0             64
YAML                 8             12             10             56
JSON                 1              0              0             48
-------------------------------------------------------------------
SUM:                15             63             28            483
-------------------------------------------------------------------

3.4 PyCharm



IDE JetBrains, . "ansible" 1 .


3.4.2 YAML/Ansible support


:


  • тАФ 3.7 5.0 (9 ).
  • тАФ 464 115.
  • Github тАФ 191.
  • тАФ 01.06.2017.

README:


  • Goto role (Ctrl-N)
  • Goto task (Ctrl-N)
  • Goto var/property (Ctrl-Alt-Shift-N)
  • Role/Jinja var reference on Ctrl-Click
  • Module doc lookup
  • lexer, parser (internal)
  • syntax highlighting
  • comment/uncomment
  • bracket / parenthesis matching
  • role completion

cloc:


147 text files.
146 unique files.
 42 files ignored.
-------------------------------------------------------------------
Language         files          blank        comment           code
-------------------------------------------------------------------
YAML                28           1045            232           7276
Java                68            686            464           3344
Bourne Shell         1             21             22            129
-------------------------------------------------------------------
SUM:               107           1806            726          10970
-------------------------------------------------------------------

YAML , 1 fork Ansible , cloc. , Java.


4.


VS Code PyCharm . ansible-lint, ansible-playbook --syntax-check, yamllint. YAML, Ansible, . , ( Docker ), ( , YAML, ).


CI, . deprecation warnings . Atom Ansible.


, Ansible Atom. , , .


. 2-3 , Ansible 8 , . , , Ansible .


All Articles