Perlがくしゅう帳(Rubyも)

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_で活動しています。 最近は主にPerl関連の勉強会やコミュニティに参加しています。移転前のブログはこちら->http://ruby.doorblog.jp/

Acme大全への道

こんにちは、Perl入学式in大阪でサポーターをしている @tomcha_ です。

www.perl-entrance.org

趣味でPerlのプログラミングを始めて早6年。
なんとなく、ちょっとしたコードを書いている毎日ですが、PerlMongerになったからには大きな憧れってありますよね。

そう、これです

f:id:tomcha0079:20170602223101j:plain:w500

Acme大全!

いつの日か、自分の書いたモジュールがAcme大全に載ってたらカッコイイな〜と、

今までは見る側でしたが、入学式の講師予習をしている時に、ふとモジュールを思いついたので、勢いに乗っかって作ってみようと思いました。

まずはモジュールの紹介よりも先に作った手順などを紹介します。

やったこと 手順

1. Minillaのインストー

Acme大全に載るには、CPANAcme::で始まる名前空間に自作モジュールをアップする必要があります。
CPANにアップするモジュールには、色々とお作法がありますが、その雛形を簡単に作ってくれるモジュールが、Minilla です。

metacpan.org

まずはMinillaをcpanからダウンロードしましょう。

cpanm minnilla

2. minil new

Minillaのインストール 自作モジュールを作成するために、ローカルのパソコンの任意のディレクトリで、以下の新規作成コマンドを叩きます。

minil new Acme::モジュール名

ここでミソなのは、今回作るのは憧れのAcmeモジュールなので、モジュール名の前にAcme::をつけます。
その他、色々な名前空間でモジュールを作るときは、適宜応じた名前と :: で区切って指定します。
すると、 :: で区切った通りにディレクトリ、子ディレクトリも自動的に作ってくれます。超便利。
Hoge.pmというモジュールを作るなら、

minil new Acme::Hoge

とします。

3. コードを書く

さあ、オリジナルモジュールを作りましょう!
あ、その前に編集前の状態で git commt しておきましょう。
そして、ディレクトリの中に lib というディレクトリがあり、その中の モジュール名.pm を編集していきます。
通常はサブルーチンを書いていく感じになりますね。そうすると、作ったモジュールを読み込めば自作サブルーチンが呼び出せるようになります。
また、__END__以降の行の部分のコメントを編集して、READMEの内容を作っていきます。ここに書いておくと、この後のコマンド操作でREADMEファイルをよしなに作ってくれます。コピペで使い方がわかる、SYNOPSYSも丁寧に書いてみましょう。

4. Minil test

モジュールの中身が実装できたら、モジュール名のディレクトリ直下で、テストを実行して確認します。コマンドは、

minil test

です。デフォルトでは、自分の書いたモジュールが読み込めるかどうかのテストがデフォルトで書かれています。
まずはこのテストが通る事を確認して、その他テストも書いてみましょう。

5. Minil releaseの前に、pauseの登録

実装できた!テストも通った!さあ、リリースだ….のちょっと前にしておく事があります。
CPANにモジュールを上げる事になるので、先にCPANに自分のアカウントを作っておく必要があります。

https://pause.perl.org/pause/query

PAUSEというサイトで登録するのですが、こちらのブログ記事で詳しく書かれています。

blog.livedoor.jp

今回、大変参考にさせていただきました。感謝。

6. cpanアカウントの設定

PAUSEでアカウントを作ったら、アイコン画像などもう少し詳しいプロフィールを設定します。
プロフィールはmetacpanというサイトで設定します。

Search the CPAN - metacpan.org

まずはTwitterGithubのアカウントなどでサインインし、Accountメニューからidentitiesを選び、先程作ったPAUSEのアカウントと紐付けます。 f:id:tomcha0079:20170602224550p:plain:w500

そして、profileページでアイコンや自分のブログなど、プロフィールを書きましょう。

7. リリース準備ファイル

ホームディレクトリに.pauseファイルを作り、そこへPAUSEアカウントの情報を書き込みます。

touch ~/.pause chmod 600 ~/.pause

.pauseの中身は、

user username
password userpassword

(もちろん、自分の)を書きます。

8. Acme名前空間の再確認

CPAN名前空間での整理やテスト文化など、素晴らしいエコシステムが整った公共の場です。
まずはCPANの流儀にしたがい、自分の作ったモジュールがのディレクトリ名がAcme-Hogeとなっているか、llibディレクトリの中のAcmeディレクトリの中にファイルが置かれているか再確認しましょう。

さあ、ここまで来ればあと少しです!

9. リリース

モジュールをCPANにリリースです!

minil release

最初は何度かファイルをアップするためのCPANモジュールが足りない!と怒られました。
その都度、cpanm でインストールして、すべてのアップロード用モジュールが揃えば自動的にCPANにモジュールがアップされます!

作ったAcmeモジュールと今回はまったこと

さて、今回私が作ったモジュールはこちらです。

metacpan.org

どういうモジュールかというと、Perl入学式では一番最初に"Hello, world\n"と画面に出力するプログラムを作ります。
なので、Perlという言語のスローガン、TMTOWTDI “There’s More Than One Way To Do It.” “「やり方はひとつじゃない」”
に習って、教科書とは違うやり方の"Hello, world"のモジュールを作ってみました。

こんな単純なモジュールですが、実はテストでちょっとはまりました。
モジュール内のprint文、最初はシングルクォートで囲っており、改行しない文字列を出力させてました。
すると何故か、デフォルトのモジュール読み込みテストがコケる!
丁度Perl鍋という勉強会で作っていたので、周りの参加者に見てもらい、テスト単体とかでも試した結果、どうやらテスト時に"ok"で始まるテキストが帰らないとテストがコケる用で、テストの返り値文字'ok'の前に'Hello,world'の文字が改行せずにひっついていた為、'ok'を認識してくれずテストがコケていました。
Perl鍋と参加されていたPerlMongersにも感謝。
Perl鍋は不定期で平日木曜日のよる、大阪は梅田で絶賛開催しています。

perlnabe.connpass.com

出力文字列をダブルクォートで囲い、きちんと改行して、なんとかテストが通りました。

めでたい!念願のAcme大全に載れるはず?!
今年も出版されるのを願ってます!

ちなみに、こういうもくもく会を主催してます。(宣伝)

naniwaperl.connpass.com

YAPC::Kansaisaka 2017でコアスタッフをしました

2017.3.4 YAPC::Kansai 2017 Osaka で、コアスタッフとしてお手伝いをしてきました。

大規模カンファレンスにがっつり中からお手伝いするのは今回が始めての経験でした。 そこに至った経緯であるとか、YAPCはへの想いなどの諸々の話はまた別の機会にするとして、開催前、開催当日、後日の感想を書きたいと思います。

開催前

企画段階の準備や打ち合わせは、遠方だったり仕事や学業で場所も時間帯もバラバラでなので、SlackでのチャットコミュニケーションとGithubのissueでのタスク管理、GoogleDriveによるデータ共有などのツールを駆使して進めていきました。
私自身が本業はITとは全く関連の無い仕事をしているので、いずれも「とりあえずアカウントを作っただけで実際に使った事がない」ツールがほとんどで、最初は恐る恐る使い方を学ぶところから始まりました。ツールの便利なところが知れた事はとても良い経験になりました。また、逆に、チャットだけでは意思疎通の難しい部分もわかり、普段何気なく顔を合わせて話したり会議している場の有り難さも分かり、とても良い経験になりました。
また、YAPCは何度か参加していましたが、思っていた以上に決めることが多くびっくりしました。歴代スタッフの方々への尊敬と感謝を再認識しました。

前日準備

個人的には発注関係をメインに担当していたのですが、前夜祭に無事発注した商品が到着してほっとしました。
ノベルティの詰め込み作業はあっという間に終わった印象です。スタッフ全員、モチベーションがMAXだったからでしょうか。
また、たこ焼きを◯万円分買うという、人生初の貴重な経験も。
準備終了後は晩餐会&&締めの鴨南蛮を堪能しました。美味しかった!

当日

当日はメインホールA会場のタイムキーパー担当だったので、遅刻しない様に早めに現地に到着してコメダでモーニング。前日なかなか寝付けなかったので睡眠時間は2時間くらい。

朝会場に到着して、がらんとしたホールに入った時はそうでもなかったですが、ぱらぱらとお客さんが集まりだし、@941さんが来られたのを見かけて「おー、遂にYAPC開幕だー!」とYAPC感が一気に高まりました。何気にブログの写真にも写っていて感動。

A会場ではトークを聞きつつ、メインゲストのお二方、スペシャルコンテンツに温故知新トークなど興味深い話がたくさん聞けました。
スタッフにはお昼ごはんに豪華なお弁当が出ました。

f:id:tomcha0079:20170304130900j:plain:w500

大きなトラブルも無く、いや、プロジェクターが止まりかけたっけ?あの時は焦った焦った。
全般的には進行もスムーズに進みましたが、司会のかるぱさんの補助が出来てなかったなーというのが自分の反省点。
一日があっという間に終わり、その後の撤収もダダダダーッと皆で片付け。大人の文化祭なノリで全てが楽しかったですね。
今回は懇親会会場の広さや時間の都合もあり、スタッフは懇親会には出られず、色んな方々とお話が出来なかったのが残念でした。
ゴミの片づけやらなんやら終わって、スタッフ打ち上げは21時頃からになったかな?達成感もあり、とにかく、ご飯とお酒が最高に美味しく感じました。

f:id:tomcha0079:20170304210805j:plain:w500

f:id:tomcha0079:20170304214348j:plain:w500

このビールの味は一生忘れられないですね!

終わってみて

今回始めて大規模カンファレンスのコアスタッフをやってみて、YAPCが楽しかったのはもちろんですが、本業の仕事をしているだけでは経験できない事や、色々な方とお話できたり繋がりが出来て

コアスタッフやってめっちゃ良かった!

それにつきますね。

JPAの方々、コアスタッフの仲間や当日ボランティアの方々、ありがとうございました。

自分も含め、皆さん本業が忙しい中、楽しいイベントにする為にそれぞれが出来ることをする、まさにOSSの精神だなと感じました。
OSSに直接的に貢献する事は難しくても、何かの形で恩返し出来たかな?と思っています。
スタッフ業は遊びとはまた違うので、大変な部分ももちろんありますが、得られるものも沢山あるので少しでも興味を持ったなら、皆さん是非やってみてはどうでしょうか。

そしてスポンサー企業様、ゲストの方々、スピーカーの方々、ご来場の方々にも感謝です。ありがとうございました。

さて、ブログを書き終えて今回のYAPCは終わり。
これから2017年度の活動ですが、Perl入学式in大阪も春からSeason6が始まる予定です。 そして、自分が主催している(なにわPerl)https://naniwaperl.connpass.com/も、YAPCも一段落着いたし、ぼちぼちやらなあかんなーと思っているところであります。

そして、夏には福岡です。チケット買いました!
今回じっくりお話ができなかった皆さん、7月のYAPC::Fukuoka 2017 Hakata でお会いしましょう!

できる!ゲーム制作 ~Perl入学式 卒業制作~

Perl入学式 Advent Calendar 2016 5日目の記事です。

まずは軽く自己紹介。

2011年に大阪で始まったPerl入学式。当時、受講生としてとして参加してプログラミングを教えてもらい、そして翌年よりin大阪サポーターとして参加しているTomchaです。現在は、なにわPerlというもくもく会の主催もしています。職業はエンジニアではない、ただのコンピューター好きおじさんです。

序章

さて、皆さんがプログラミングを始めたきっかけは何だったでしょう? 僕の場合、それは遠い遠い昔任天堂から発売されたコイツが世間で大ブームだった時代、

www.youtube.com

たしかクリスマスプレゼントかお誕生日プレゼントだかで本体を買ってもらいました。 しかし当時は小学生。そうそうゲームソフトの新作なんて買ってもらえず、でも色んなゲームがしたい!でも買えない!

そんな時に任天堂から夢のようなデバイスが発表されました。

ファミリーベーシック wikipediaより

これを使えば自分でケームが作れる!マリオもドンキーコングも自分で作れる!作りまくれば色んなゲームがタダで遊び放題!! だけど現実はそんなに甘いものではなく、ファミリーベーシックのスペックは自作プログラム保存メモリ1,982バイト、ベーシック言語、しかも当時小学6年生。あっけなくゲーム作成の野望は砕け散りました...

そして月日はウン十年流れ、、、

Perl入学式でプログラミングを体系的に教わり、趣味でコードをぼちぼちと書いていたある日、書店で横井軍平さんの本を見つけました。

おお、懐かしのゲームウォッチ!そういえば初めてデジタルなゲームをしたのはゲーム&ウォッチの「マンホール」だった。 もしかして、遠い昔に挫折したゲームのプログラミング、大人になった今これぐらい簡単なものならなんとかなるかもしれない?!

https://www.nintendo.co.jp/ds/arjj/gamewatch/

そして懐かしさのモチベーションだけでなんとか完成までこぎつけたのがコチラのプログラムです。

もちろん、Perlで書いています。

github.com

中身はむずかしくなくPerl入学式の第1回から第4回までの講義内容+モジュールの使い方くらいでできてしまうプログラムです。

リアルタイムのアクションゲームなので、Term::Screenというモジュールを使ってみました。

モジュールの使い方は、ひさいち先生のブログ記事を参考にさせていただきました。

hisaichi5518.hatenablog.jp

ゲームを作るにあたって考えたことや工夫したこと

  • ゲームウォッチのゲームって、ほとんどがモチーフは違えど中身のゲーム性は同じと気づいたこと。
  • 迫ってくる何かをキャッチする又は避ける、それが時間差で2ライン、3ライン、4ラインあるなぁと気づいた。
  • 迫ってくる何かは、配列を使って位置を1つずつずらしていけば(shift+push、unshift+pop)表現できるなぁ。

といったところでしょうか。あとはn秒毎に配列の中身を画面に描画すればゲームのステージは出来上がりました。

そうです、Perl入学式で学んだ技術でアクションゲームが作れてしまうんですね〜。

みなさんPerl入学式で一緒に学んでいきましょう!

そして古き良き時代のおっさんたちへ、、、

昔懐かしいノスタルジックな記事にピンときたあなたも、そうでないあなたも、

YAPC::Kansai 2017 OSAKA!!!

12月10日開催の北海道に続き、大阪で・・・詳細は続報を待たれよ!

さて、明日のPerl入学式 Adventcalenderは、in大阪サポーターのsago35さんの記事ですね。 何が発表されるか楽しみですね!

続・さくらVPS+CentOS7で、独自ドメインのウェブサイトを公開するまでの道のり〜https編〜

前回の記事で、無事nginxのリバースプロキシを利用した、さくらVPS + Centos7環境でのwebサイトを公開をすることができました。

さて、次の一歩として、サーバー証明書を導入してhttpsアクセス出来るようにするチャレンジです。

サーバー証明書

今回は無料の Let's Encrypt を使ってみようと思います。この証明書は、LineBotでも使える証明書となっているので、ゆくゆくはこのサーバーでLineBotも作ってみようかというのが最終的な野望です。

Let's Encrypt は、日本語の解説ページもあり、言われる通りすすめるだけでインストールができました。

Let's Encrypt の使い方 - Let's Encrypt 総合ポータル

sudo ls -la /etc/letsencrypt/live/tomcha.net/
# で確認すると、以下のリンクが出来ていました。

cert.pem -> ../../archive/tomcha.net/cert1.pem
privkey.pem -> ../../archive/tomcha.net/privkey1.pem

nginxの設定

前回、nginx.conf で、listen 80; とか書いた感じを、 listen 443;で書いたのを追加すればいいのかなーと予想してみる。

ググッて参考にしたページがこちら。ほぼ予想通りだった。

nginx で ssl 設定をする | dogmap.jp

証明書、鍵のリンクが自分の環境とは異なっているので、その部分は書き換えてnginx.confを修正。

sudo vim /etc/nginx/nginx.conf

書き足した内容は

server {
    listen 443 default ssl;
    ssl on;
    # サーバ証明書(サーバ証明書に中間CA証明書を連結したもの)
    ssl_certificate      /etc/letsencrypt/live/tomcha.net/cert.pem;
    # 秘密鍵
    ssl_certificate_key  /etc/letsencrypt/live/tomcha.net/privkey.pem;  

    location / {
        proxy_set_header Host $http_host;
        proxy_pass http://localhost:8080;
        }
    }
}

ngnxをRestartして....

sudo service nginx restart

ブラウザからhttpsで開いてみると...

httpsでアクセスできたーーーー!!証明書キターーーーー!

f:id:tomcha0079:20160803205724p:plain

さくらVPS+CentOS7で、独自ドメインのウェブサイトを公開するまでの道のり

SakuraVPSで独自ドメイン運用しているwebサイト、CentOS6からCentOS7に再インストールしてからずっと放置していたので、作業したこと、詰まったことメモ。

やりたい事は、

  1. http://tomcha.net へのアクセスで、独自サイトを表示。
  2. 独自サイトはSinatra + Passenger で動かす。
  3. httpsも出来るように、証明書を設置。証明書はLet's Encryptを使う。
  4. ポートフォワード(前回はiptables,今回はfirewalledを使用)以外に、nginx にもちょっと手を出してみる。

やったこと手順

sinatra + passenger でwebアプリを実行

bundle exec passenger start -p 80 -d

な、なんといきなりエラーががが。どうもポート80で起動すると怒られる。
色々ググってみると、CentOS7では、1024より若いポートで何かするにはroot権限が必要みたい&&怒られる様。

ポート80が駄目だったので、任意のポート(記事の例は5000番)で実行して80番へのアクセスから飛ばす作戦。

bundle exec passenger start -p 5000 -d

80番ポートと443番ポートで外からアクセス出来るように設定。

# 開いてるPublicゾーンのポートの確認
firewall-cmd --list-ports --zone=public
# ポートを開ける
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --add-port=443/tcp --zone=public --permanent
# 設定を有効化
firewall-cmd --reload

80番ポートへのアクセスを5000番ポートに投げる設定。CentOS7から使われているfirewalledを使った設定。

# public ゾーンのポートフォワードを確認
firewall-cmd --zone=public --list-forward-ports
#public ゾーンで TCP80,443の通信をTCP:5000へ投げる設定
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=5000
firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=5000

firewalledのポートフォワードでの転送ではなく、nginxのリバースプロキシで制御する方法

  • nginxのステータス確認方法
sudo service nginx status
  • nginxのリバースプロキシの設定
    • /etc/nginx/nginx.conf をsudoで編集
server{
    listen 80;
    server_name  tomcha.net;

    location \ {
        proxy_set_header Host $http_host;
        proxy_pass http://localhost:5000;
    }
}
  • nginxのリスタート等コマンド
sudo service nginx start
sudo service nginx stop
sudo service nginx restart

nginxのリバースプロキシを使った場合、これで設定はOKなはずなのに、サイトにアクセスするとnginxのエラーページが表示される。
なので、nginxのログを調べてみた。

sudo ls -la /var/log/nginx/
  # -> error.logってファイルが存在することがわかる。
sudo cat /var/log/nginx/error.log
  # -> connect() to 127.0.0.1:5000 failed (13: Permission denied)が出まくる。

どうもパーミッションの関係で5000番ポートへの接続ができていない。色々ググッてみたところ、SELinuxのセキュリティで引っ掛かってるみたい。
この辺から、かなり手に負えない感じなので、色々参考にさせてもらったサイトはこちら。

CentOS7.1 64bit SELinuxによるアクセス制御 | kakiro-web カキローウェブ

SELinuxが妨害してるのか、一度SELinuxを無効化して確認してみる。

getenforce
  # -> 現在有効か無効か確認

# 無効化してみる
sudo setenforce Permissive

SELinuxを無効化すると、ちゃんとSinatraで作ったwebアプリが表示された。ということは、こいつが邪魔をしている模様。
ググッてみて、同じ状況の対策が書かれている記事を発見。同じようにやってみる。

qiita.com

www.crystalsnowman.com

# SELinuxをもう一度有効化。
sudo setenforce Enforcing
  # -> 予想通り繋がらなくなった。

# SELinuxの状態を表示するツールsesearchを実行したが、コマンドが見当たらず。ツールをインストール。
sudo yum install setools-console

# SELinuxの状態を表示させる。オプションはコピペした
sesearch -A -C -s httpd_t -t http_cache_port_t -c tcp_socket

# httpd_can_network_relayのbool値を変更。(拒否DTをはずす)
sudo setsebool -P httpd_can_network_relay=1
  # -> 元に戻す時は httpd_can_network_relay=0 に。



繋がったーーーー

再帰プログラムを書いて遊んでみた

再帰を使ったプログラムを初めて見たのは、数年前にiPhoneプログラミング勉強会でフィボナッチ数列を出力するコードを見た時だった。 自分のプログラミング原点はBASIC、バリバリの手続き型言語思考の自分にとって、それはとても衝撃的な出来事で、初めて見た時はなんて芸術的なコードなんだ!と衝撃を受けた。 手続き型言語でコードを考えると、まさにやる事を頭のなかで順番にコードに置き換えて書いていく事になるのだが、再帰プログラミングでは、定義した自分自身にさらに問いただすという、自問自答の様な、合わせ鏡の様な不思議なロジック。フィボナッチ数列を出力するコードは、見様見真似で書ける様にはなったけれど、きちんと再帰を使えるには程遠い状態だ。

で、少し前からコレを解いて遊んでいた時に

プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問

プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問

再帰でも書けますよ!という問題があったので、再帰プログラムを書く練習をしてみた。 今の自分にうってつけのブログ記事を見つけたので、練習がてらRubyでコードを書いてみた。

bleis-tift.hatenablog.com

が、記事の回答はC#とF#という、ギターのコードなら押さえられるけれどプログラミング言語としては全く基礎知識がなかったので、なんとなく感覚で書いてみた。(なので、書いたコードに突っ込みがあればやさしく突っ込んでください。)

コードを書く時に課したルールは記事に書いてある通り、

  • forループを使わない。
  • 変数への再代入を使わない。

だ。そして、意識したのは、

  • if文で、最終形の状態で結果をreturnする
  • 最終形に至っていない時は、値を一つ取り出して最終形に1歩近づけて自らを呼び出す。

の2点。慣れれば、なんとか同じパターンを使って書くことが出来た。 関数を渡して〜系の問題は、Procオブジェクトに判定ブロックを書いて表現してみた。

果たして、ちゃんとこれで合ってるのかな?

配列の値を合計する関数 sum

Recursion1

続きを読む

さくらVPSにCentOS7を再インストールした

さくらVPSで動かしてるアプリが結構ぐちゃぐちゃになってきた

いろいろ変なwebアプリを作っては上げて動かしているうちに、一度綺麗に整理したいな〜と思ったので、一念発起してOSをクリーンインストールしてみた。 せっかくの機会だったので、今までのCentOS6.5から7にバージョンを上げてチャレンジ。

入門書を読み進めながら、平行して進めてみた。

実践!  CentOS 7 サーバー徹底構築

実践! CentOS 7 サーバー徹底構築

インストール

公式のサポートページに記載された手順通りに進めたら、あっさりと入った。

https://help.sakura.ad.jp/app/answers/detail/a_id/2397

インストールした後

sshでアクセスするポートをデフォルトの22番から他のポートへ変更する。(セキュリティ上)

  • sshをバックアップ
  • sshd_configのポートを書き換え
    • sudo vi /etc/ssh/config
    • Port22の コメント(#)をはずす

    • 下にPort hogeを追記
  • SELinuxのポリシーを先に変更(ツールインストールされているか確認)
  • されていなければyumでインストール
  • 設定を変更
  • 変更を確認
  • sshdをリスタート
    • sudo systemctl restart sshd
  • firewallを書き換え
    • sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-alt.xml
  • 作ったssh-altのport=22をport=hogeに書き換え
    • firewall-cmd --reload
    • firewall-cmd --add-service=ssh-alt
    • firewall-cmd --permanent --add-service=ssh-alt
  • 新たなポートhogeからsshできる事を確認してから、sshを削除
    • firewall-cmd --remove-service=ssh
    • firewall-cmd --permanent --remove-service=ssh
    • firewall-cmd --reload
    • firewall-cmd --list-all
  • sshをリスタート
    • service ssh restart

rootでのsshログインを出来なくする。(一般ユーザーで入って、sudo や su コマンドで対応する様にする)

  • 設定ファイルの書き換え
    • vi /etc/ssh/sshd_config
    • PermitRootLogin yesをnoに

使うツールのインストール

passenger + sinatra で、webサーバデーモンとして稼働させるコマンド

  • bundle exec passenger start -d -p hoge(port番号)

CentOS7からの変更点でちょっとつまったところ

  • iptablesではなく、firewallでポートの制御をする。
    • firewall-cmd —permanent —zone=public —add-port=hoge(port番号)/tcp

目標達成

とりあえず、必要だった以前稼働していたwebアプリは動いたので目標達成。