Недавно я потратил некоторое время на настройку своей среды для более продуктивной работы над написанием манифестных кукол. В этом посте освещаются некоторые выводы, которые помогут мне более продуктивно редактировать кукольные файлы и модули. Некоторую более старую информацию можно найти в разделе « Подсказки редактора» на веб-сайте 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, кажется, что произошли некоторые перевоплощения:
- Первый вариант — просто установить синтаксис любого файла .pp в синтаксис ruby.
- Второй вариант, который описывает Гаретт Ханикатт :
- это более сложная версия выделения файлов pp (первоначально написанная Люком Кансом).
- Этот файл распространяется вместе с самой куклой.
- http://downloads.puppetlabs.com/puppet/puppet.vim
- Стик дает нам еще более продвинутые советы по адресу:
- Р.И. Пиенаар показал нам, как использовать Snipmate с vim и puppet:
- http://www.devco.net/archives/2009/09/22/vim_and_puppet.php
- Его фрагменты можно найти по адресу http://www.devco.net/code/puppet.snippets.
Самая продвинутая интеграция 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