RTX1100の設定まとめ

RTX1100とは

ヤマハから出ている業務用ルーター

ただ古い方となっていてオークションとかで5000円くらいで手に入る

今となっては需要はほぼないけどログとして。

工場出荷時に戻す

$ cold start

管理者パスワードの設定

$ administrator password
> 任意のパスワード入力

TimeZoneと日次の設定

$ timezone jst # 日本時間に
$ date 2016/02/12` #日付合わせる
$ Time 11:35:00 # 時間合わせる

ブラウザからアクセスできるようにする

httpd service on
httpd host lan1
ip lan1 address 192.168.100.1/24
dhcp service server
dhcp scope 1 192.168.100.2-192.168.100.191/24
# これで192.168.100.1で接続できる。  

ログインタイマを30分に変更し

  • ログインタイマを30分に
login timer 1800
  • コンソールで[RTX]と表示
console prompt [RTX]
console character ascii

save

save

一通り終わった後にこれやらないと消えてしまうので注意

フォームの更新

  • ダウンロードしてきたバイナリファイルが正しいかどうかをMD5チェックサムで確認

    • type rtx1100.md5
    • md5sum -cv rt80i.md5
    • md5sum -bv rt80i.bin
      一番目と三番目で出てくるハッシュを確認してあっているかを確認する。
  • 外からipを設定して外部からipで接続できるようにする。

  • 後は tftp host [ip address]
  • 上記のtftpのipは転送処理を行うパソコンのイーサーネットのipを設定する。

作業をする際は

  • 作業中は送信処理などが不安定になることから
    • pp disableとしパケットを無効にする。
    • 作業が終わったらpp enableとして有効にする。

ディレクターと仲良くするために考えている1つのこと

Speee Advent Calendar 2015 - Qiitaの7日目です! 今回はエンジニアなら誰もが作ったことのあるクローラーの話をしようと考えてましたが、
法令とモラルの遵守から少し外れそうだったので、ちゃんとした記事にします!
クローラー話を期待してくださった方はまた次回ということで。
今回は業務上ジョブ管理が多いのでそれを効率化させてディレクターと仲良くなりたくて書きます

ジョブ????

一番有名なのはエンジニアが誰しもが知っているcronかなと思います。 これを設定することで、定期的にプログラムを実行してくれる素晴らしいやつ。 便利だけど、ちょっと難点が。。。もしかしたら僕の場合だけかもしれないですが。。。

とある業務上での会話

シーン①

Dir: hatappiさんこの定期的にまわっているの今日だけとめてもらっても良いですか?
hatappi: 了解しました!対応しておきます。(crontabの指定箇所をコメントアウトしておいて・・・・)
ーーーー 次の日 ーーーー
Dir: hatappiさん!!定期実行されるものが回ってないです!!確認いただけますか???
hatappi: やばい・・・コメントインしていない・・・

シーン②

Dir: hatappiさんクローラーの処理終わりそうですか?
hatappi: まだ終わってないですねぇ〜
Dir: hatappiさんクローラーの処理終わりそうですか?
hatappi: まだ終わってないですねぇ〜
Dir: hatappiさんクローラーの処理終わりそうですか?
hatappi: まだ終わってないですねぇ〜
DIr: hatappiさん・・・・

本題: Airflowの導入

Airflowとは?

宿泊施設仲介サービスairbnbオープンソースとして公開されたワークフロー管理サービス! pythonで作成されておりスケジュールはコンソールから登録!
このサービスはairbnb社がデータパイプラインのインフラに不満があり生まれたもので今ではすべてのパイプラインをairflowで行っているらしい

導入に関して

過去に導入で書いた記事があるのでこちらで
qiita.com

コード例

# airflowで定義されているものを読みこむ
from airflow import DAG
from airflow.operators import BashOperator
from datetime import datetime, timedelta

# 初期値の設定。実行ユーザーと開始日は最低でも設定しておかないと動かない。
default_args = {
  'owner': 'airflow',
  'start_date': datetime.today(),
}

# ジョブに関するインスタンスの作成 (schedule_intervalにcrontabの記載でスケジューリング)
dag = DAG('print_test', default_args=default_args, schedule_interval='0 0 * * *')

# タスクの定義
task1 = BashOperator(
    task_id='print_hoge',
    bash_command='echo "hoge"',
    dag=dag)

task2 = BashOperator(
    task_id='print_fuga',
    bash_command='echo "fuga"',
    dag=dag)

task3 = BashOperator(
    task_id='print_ping_pong',
    bash_command='echo "ping {{ params.ping }}"',
    params={'ping': 'pong'},
    dag=dag)

# タスクの依存関係を定義する。※下記はtask1が終わった後にtask2, task3の実行
task2.set_upstream(task1)
task3.set_upstream(task1)

感じたこと

  • CUIでタスク登録だがそれ以外は基本webから出来るので楽!
  • 単なるスケジューラーではなく、ワークフロー管理ということ!
    • どこまで進捗しているかなどがweb上で一目瞭然!時間なども計測できる。 f:id:karasumaru-hy:20151207203605p:plain
  • web上でlogが閲覧できるので、エンジニアでなくてもlogを確認できる。

Airflowを導入したディレクターとの未来!

シーン①

Dir: hatappiさん定期的にまわしているタスクですが今日だけ止めておきましたのご認識お願いします!
hatappi: はい!

シーン②

Dir: hatappiさん確認しましたが、クローラーの処理後少しですね!
hatappi: はい!

みんなハッピーになれる!!!!!!1

Airflow以外の選択肢

今回はAirflowを使用したが、他にも

この他にもまだまだある。正直どれが良いかは一長一短な感じ。全部試してないけど・・・ 大事なのは管理するのはシャルやコマンドの実行とスケジューリングでプログラムなどは書かない
これをすれば他に良いツールが出たときも移行しやすい。
これでちょっとでもディレクターとの開発・運用ライフを楽しみたいと思います!