Статьи

Редактирование кукол как профессионал

Недавно я потратил некоторое время на настройку своей среды для более продуктивной работы над написанием манифестных кукол. В этом посте освещаются некоторые выводы, которые помогут мне более продуктивно редактировать кукольные файлы и модули. Некоторую более старую информацию можно найти в разделе « Подсказки редактора» на веб-сайте puppetlabs.

Совет 1: Подсветка синтаксиса, завершение фрагмента

Синтаксис марионеток очень специфичен, важно как можно быстрее получить подсказки об отсутствующих фигурных скобках, точках с запятыми и т. Д. Это поддерживается в самых распространенных редакторах:

Используя Textmate:

@Masterzen создал пакет textmate для использования с puppet. Вы можете найти его по адресу https://github.com/masterzen/puppet-textmate-bundle .

Майкл Холлиган описывает, как установить его из командной строки

mkdir -p /Library/Application\ Support/TextMate/Bundles
cd /Library/Application\ Support/TextMate/Bundles
git clone git://gitorious.org/git-tmbundle/mainline.git Git.tmbundle
git clone http://git.gitorious.org/git-tmbundle/mainline.git Git.tmbundle
git clone https://github.com/masterzen/puppet-textmate-bundle.git Puppet.tmbundle
git clone https://github.com/drnic/Chef.tmbundle.git Chef.tmbundle
osascript -e 'tell app "TextMate" to reload bundles'

Используя VIM:

Если TextMate не ваша вещь, вот как вы можете увеличить VIM:

Когда вы смотрите на интеграцию puppet / vim, кажется, что произошли некоторые перевоплощения:

Самая продвинутая интеграция vim-puppet, которую я смог найти (декабрь 2011 г.): — созданная vim-puppet Тим Шарп. https://github.com/rodjek/vim-puppet

Чтобы использовать плагин vim-puppet, лучше всего использовать патоген, написанный Тимом Папой. Я следовал инструкциям на http://tammersaleh.com/posts/the-modern-vim-config-with-pathogen .

Я включил следующие плагины в моем скрипте update_bundles

git_bundles = [
  "git://github.com/astashov/vim-ruby-debugger.git",
  "git://github.com/ervandew/supertab.git",
  "git://github.com/godlygeek/tabular.git",
  "git://github.com/hallison/vim-rdoc.git",
  "git://github.com/msanders/snipmate.vim.git",
  "git://github.com/pangloss/vim-javascript.git",
  "git://github.com/scrooloose/nerdtree.git",
  "git://github.com/timcharper/textile.vim.git",
  "git://github.com/tpope/vim-cucumber.git",
  "git://github.com/tpope/vim-fugitive.git",
  "git://github.com/tpope/vim-git.git",
  "git://github.com/tpope/vim-haml.git",
  "git://github.com/tpope/vim-markdown.git",
  "git://github.com/tpope/vim-rails.git",
  "git://github.com/tpope/vim-repeat.git",
  "git://github.com/tpope/vim-surround.git",
  "git://github.com/tpope/vim-vividchalk.git",
  "git://github.com/tsaleh/taskpaper.vim.git",
  "git://github.com/tsaleh/vim-matchit.git",
  "git://github.com/tsaleh/vim-shoulda.git",
  "git://github.com/tsaleh/vim-tcomment.git",
  "git://github.com/tsaleh/vim-tmux.git",
  "git://github.com/vim-ruby/vim-ruby.git",
  "git://github.com/vim-scripts/Gist.vim.git",
  "git://github.com/scrooloose/syntastic",
  "git://github.com/rodjek/vim-puppet.git",
  "git://github.com/vim-scripts/Specky.git"
]

Самые известные плагины:

  • Табличный дает вам автоматическое => выравнивание
  • Syntastic обеспечивает обратную связь по синтаксису при редактировании файлов
  • Snipmate дает вам фрагменты на вкладке расширения
  • Specky дает вам функциональность для файлов rspec
  • vim-ruby дает вам дополнительную функциональность для файлов ruby
  • Vim-Cucumber дает вам функциональность для файлов огурца

Для получения дополнительной информации о проекте vim-puppet перейдите по ссылке:

https://github.com/rodjek/vim-puppet/

Фрагменты, которые раскрываются в плагине vim-puppet, можно найти по адресу:

https://github.com/rodjek/vim-puppet/blob/master/snippets/puppet.snippets

Совет 2: не создавайте структуру модулей вручную

Я постоянно забываю правильную структуру, файлы и т. Д., Когда создаю новый модуль. К счастью, есть простой способ создать структуру модуля Puppet, используя гем puppet-module.

$ gem install puppet-module

$ puppet-module

Tasks:

  puppet-module build [PATH_TO_MODULE]                 # Build a module for release

  puppet-module changelog                              # Display the changelog for this tool

  puppet-module changes [PATH_TO_MODULE]               # Show modified files in an installed module

  puppet-module clean                                  # Clears module cache for all repositories

  puppet-module generate USERNAME-MODNAME              # Generate boilerplate for a new module

  puppet-module help [TASK]                            # Describe available tasks or one specific task

  puppet-module install MODULE_NAME_OR_FILE [OPTIONS]  # Install a module (eg, ‘user-modname’) from a repositor…

  puppet-module repository                             # Show currently configured repository

  puppet-module search TERM                            # Search the module repository for a module matching TERM

  puppet-module usage                                  # Display detailed usage documentation for this tool

  puppet-module version                                # Show the version information for this tool

Options:

  -c, [—config=CONFIG]  # Configuration file

$ puppet-module generate puppetmodule-apache

=========================================================================================

Создание модуля в / Users / patrick / demo-puppet / modules / puppetmodule-apache

——————————— ————————————————— ——

puppetmodule-apache

puppetmodule-apache / tests

puppetmodule-apache / tests / init.pp

puppetmodule-apache / spec

puppetmodule-apache / spec / spec_helper.rb

puppetmodule-apache / spec / spec.opts

puppetmodule-apache / README

puppetmodule-apache / Modulefile

puppetmodule-apache / metadata.json

puppetmodule-apache / манифестирует

puppetmodule-apache / manifest / init.pp

 

Совет 3 — Geppetto: кукольный IDE

Люди из Cloudmith создали редактор на основе Eclipse под названием Geppetto . Он включает в себя подсветку синтаксиса, создание модулей и т. Д. И имеет хорошую интеграцию с кузницей Puppet.

Примечание: это НЕ связано с проектом Gepetto (one P) Альбана Пенье

Джеймс Тернбулл был очень любезен, чтобы сделать быстрый скринкаст о том, как это работает:

Учебное пособие по Geppetto от Mitch Sonies на Vimeo .

 

Источник: http://www.jedi.be/blog/2011/12/05/puppet-editing-like-a-pro