Нужна помощь с регулярным выражением Perl, комментирующим строки в html

Вы не установили aws_access_keyи aws_secret_keyв задаче "создание linux vm".

Как мне кажется, хранить учетные данные в Ansible (за исключением Ansible Vault )— плохая идея. Их лучше хранить в отдельном файле оболочки -и использовать перед запуском плейбука, например:

Файл с учетными данными,aws_testing_profile.sh:

export AWS_ACCESS_KEY_ID=''
export AWS_SECRET_ACCESS_KEY=''

запустить плейбук:

source aws_testing_profile.sh
ansible-playbook -i inventory/testing/ my_playbook.yml

Конечно, вы можете хранить учетные данные в ~/.aws/credentials, но мне это не нравится, потому что любая ваша команда будет иметь ваши права AWS без подтверждения.

1
06.01.2020, 06:30
1 ответ

Может быть, что-то вроде:

perl -0777 -pe '
   s{<li>\s*<a\s[^>]*href="[^"]*latest-news\.(?:htm|php)"[^>]*>\s*Latest News\s*</a>\s*</li>}
    {<!-- $& -->}g' your-file.htm

будет достаточно.

Обратите внимание, что если вы не включите многострочный -режим (с флагом m), ^соответствует только началу темы (каждому NUL -запись с разделителями с -0, весь ввод с -0777), а не начало любой строки в теме . Также обратите внимание, что \sтакже соответствует символу новой строки. Используйте \h, если вы хотите сопоставлять только горизонтальный интервал (, но AFAIK HTML не делает разницы между горизонтальным и вертикальным, NL и SPC взаимозаменяемы в том, что касается его синтаксиса, по крайней мере, за пределами таких вещей, как <pre>, CDATA..., значения атрибутов в кавычках.. ).

Чтобы избежать подстановки внутри уже прокомментированных разделов, вы можете сделать:

perl -0777 -pe '
   s{(<!--.*?-->)|<li>\s*<a\s[^>]*href="[^"]*latest-news\.(?:htm|php)"[^>]*>\s*Latest News\s*</a>\s*</li>}
    {$1 // "<!-- $& -->"}gse' your-file.htm
1
27.01.2020, 23:40

Теги

Похожие вопросы