LINEで送る
Pocket

ansibleでsudoersファイル管理するときに
毎回copyモジュールで管理していたんですが、
どうしても/etc/sudoersに直接書かなければならない環境は
lineinfileモジュールを使えばいい感じになりそうです。


■lineinfile – Ensure a particular line is in a file, or replace an existing line using a back-referenced regular expression.

http://docs.ansible.com/ansible/lineinfile_module.html

regexpは正規表現。

・Examples


■メンテしやすいように変数化してみた

基本stateでWhether the line should be there or not.(指定した行があってもなくても)入れてるので、
・adachinという文字列があったら上書き
・adachinという文字列がなかったら追記
みたいな感じ。
これで新しい人が来たら追記すればOK!


■まとめ

正規表現で完全に一致するように書けば問題なし。
sudoersファイルは構文エラー(改行コード)気付かずそのまま適用すると死ぬので、
特にwindowsだとデフォルトでCRLFからLFに変更するように気をつけましょう〜

LINEで送る
Pocket

カテゴリー: AnsibleBlog

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのMENTAなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなし中。

2件のコメント

wint: fav魔 (@wint7) · 2018/01/31 3:31 pm

sudoers は設定ミスると危険なので、 validate option を使ったほうがいいですね。

参考:
http://docs.ansible.com/ansible/latest/lineinfile_module.html#examples の sudoers のサンプル

    あだちん · 2018/01/31 5:52 pm

    おおおおありがとうございます!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください