読者です 読者をやめる 読者になる 読者になる

ひといきブログ

技術的な備忘やデジモノレビュー等、ちょっとひといき

ansibleでユーザ追加~認証鍵作成&取得までを自動化してみた

はじめに

最近仕事でAWSを使うことがあり、AWSにも慣れてきたこともあり少しずつ自動化していこうと思い、以前利用していたansibleで自動化してみました。
まずは、人が増えてきたので、ユーザ追加から自動化したので、そのプレイブックを備忘録程度に残しておこうと思います。

構成と条件

構成といっても、個別ユーザを作成するのはEIP(グローバルIP)の振られている3台のみ。
そして、各ユーザは公開鍵認証で、かつ鍵ペアは3台で共通です。
クライアントはMacBookProです。
f:id:camit:20170408202615p:plain

プレイブック作成

流れとしては、まずホストAに対してユーザ作成、ssh鍵作成と作成した公開鍵を登録、鍵の収集をします。
そのあとに残りのホストに対してユーザ作成をします。が、ここでは鍵を作成せず、ホストAのカギを送付して登録します。
実際のプレイブックが下記です。


ここで厄介な点が2つあります。
1つ目は、実行するたびにauthorized_keysに公開鍵情報が書き込まれることです。
shellモジュールで実行しているので、これは仕方なさそうなんですけど、なんとかしたいです。←誰かいい方法があれば教えてください。
新規ユーザ作成をターゲットに作っているから、ファイルサイズが0もしくは存在しないなら実行とかでもいいのかもしれないです。
2つ目は、特定のサーバだけ先にユーザと鍵を作った場合、その鍵を流用できないことです。
まあプレイブック書き換えればできることですが、できることなら書き換えたくないので、いい条件分岐ができればなあと思ってます。
上記2つについては、継続して改善していければと思ってます。

おわりに

とりあえず、新しい人が入ってきたときにサクッと誰でもできるような形にはしましたが、やっつけ感があるのでどうにかしたいです。
また、せっかくなので、構築も一手にできるようなプレイブックも早々に作っていきたいかなと感じました。