新米パパの育児留学

新米パパの育児留学

『育児留学』とは、育児を通して異なる視点を得たり新しいことに挑戦して自己成長に繋げること。育児奮闘中の新米パパが育児を通して得た気づきや感じたこと、育休中に習得したプログラミングに関する話題を発信していきます。

未経験からエンジニアへ転職した私のキャリア構築プロセス(33週目)

スポンサーリンク

スポンサーリンク

f:id:mochikichi321:20171218132720j:plain

異業種から未経験でエンジニアへ転職し、Ruby(Ruby on Rails)エンジニアとして新しいキャリアがスタートしました。エンジニアとしてのキャリアを構築していくプロセスを綴っていきます。これからエンジニアを目指される方の参考になれば幸いです。

この記事を書く目的

・学んだことをアウトプットすることで理解を深める

・業務/学習の軌跡を残すことで自分が指導する立場になった時にどこでどういうことにつまづいたかがわかり指導しやすくなる

・エンジニアを目指してプログラミングを学習している方がエンジニアの仕事がどんなものかをイメージしやすくなる(会社によるので一例として)

業務

・独自gemログの集計と解析

・[Rails5.1化] gemのバージョン依存解消

・コードレビュー

学び

シェルスクリプトのパスワード入力を自動化

STEP1:expectコマンドを使う
#!/bin/bash

expect -c "
    spawn ssh [アドレス]      ## 接続先指定
    expect \"Password: \"    ## "Password: "が画面に表示されたら
    send \"password\n\"      ## "password"を自動入力(改行含む)
    expect \"~]\"            ## 接続成功の"~"が表示されることを期待
"
STEP2:変数へ代入する
#!/bin/bash

##パスワードを変数に代入
PASS="password"

expect -c "
    spawn ssh [アドレス]      ## 接続先指定
    expect \"Password: \"    ## "Password: "が画面に表示されたら
    send \"${PASS}\n\"       ## 変数代入し、"password"を自動入力
    expect \"~]\"            ## 接続成功の"~"が表示されることを期待
"
STEP3:パスワードを他人が見えないようにする

STEP1,2の方法だと、シェルスクリプト内にパスワードを記載しているという危険な状態。 パスワードを入力式にして他人が見えないようにする。

#!/bin/bash

echo "パスワードを入力してください"
read -sp "Password: " PASS    ## 入力したパスワードを変数PASSへ代入、-s:入力時にエコーを返さない

expect -c "
    spawn ssh [アドレス]      ## 接続先指定
    expect \"Password: \"    ## "Password: "が画面に表示されたら
    send \"${PASS}\n\"       ## 変数代入し、"password"を自動入力
    expect \"~]\"            ## 接続成功の"~"が表示されることを期待
"
参考

使用されていないGemをクリーンアップする方法

gemをgit管理下においていないと不要なGemが知らない間にいっぱい溜まっていてbundle updateとかの際に意図せぬ挙動を示していたのでクリーンアップしました。

$ bundle clean

所感

シェルスクリプトのパスワード入力を自動化した。面倒なことはラクできるように改善。もちろん、セキュリティ面もしっかり考慮した上で。