homebrewのインストールとupdate

homebrewとは何か?ホームページに行ってみましょう。
homebrew

mac os用パッケージマネージャーと書いてあります。パッケージマネージャーというと、composerを思い出しますね。

homebrew インストール
これはやります。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

homebrewはappleが用意していない必要なものをインストール

$ brew install wget

ansibleもそうですね。

$ brew install ansible

brewをアップデートするには

brew update

パッケージのuninstall は brew removeだそうです。

homebrewのアンインストール

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

山頂は遠いなー

s3だけ使えるIAMの作成方法

awsコンソールにログインし、サービスでIAMを選択して、レフトペインの「ユーザ」から「ユーザ追加」を選択します。

ユーザ名は適当にtravis ciとしておきましょう。
AWSアクセスの種類を選択で「プログラムによるアクセス」のチェックボックスをオンにします。

既存のポリシーを直接アタッチで「ポリシーの作成」を選択します。

ポリシーを作成していきます。
サービスはS3を選択
手動のアクションは、すべてのS3アクションで「リスト」「読み込み」「書き込み」「アクセス権限の管理」を選択してます。
リソースは、bucketを指定してます。先ほど作成した「travisci-s3」を入れます。

続いて、ポリシーnameの作成画面になるので、適当に「travisci-s3-iam」とでもしておきましょう。

ポリシーが作成されました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutAccountPublicAccessBlock",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAllMyBuckets",
                "s3:HeadBucket"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::travisci-s3"
        }
    ]
}

作成するユーザと作成したポリシーを紐づけます。
アクセスキー、シークレットキーが作成されました!!!!

よっしゃーーーーーーーー

Travis CIでS3に自動デプロイ

前回の続き

1. AWSマネジメントコンソールにログイン
2. S3を選択
3. 「バケットを作成する」押下
バケット名は何にしましょう。とりあえず「travisci-s3」としておきます。

4. デプロイ用のIAMポリシーを作成
ん? IAM? IAMは確かユーザとロールだった筈。json形式で記載する。

IAM Management Consoleを開きます

あああああああああああああああ、S3のIAMポリシーの作成方法がわからんーーーー

Travis CIを使ってみよう

まず、githubでリポジトリをつくります。
適当に「travis-s3」としておきましょう。

リポジトリにファイルを作成

<!DOCTYPE html>
<html lang="ja">
<head>
	 <meta charset="UTF-8">
	 <title>エンジニアの名言</title>
	 <meta name="viewport" content="initial-scale=1.0,width=device-width">
</head>
<body>
  <p>おしゃべりはいいから、お前のコードを見せろ</p>
</body>
</html>

vagrantに入ります
deployというディレクトリにいます。ここで作業すると仮定しましょう。

前準備ができました。それでは、いよいよTravisに触っていきましょう^^

Github Marketplaceを押下します。

ページ中段のApps with free trialsでTravis CIをクリックします。
続いて、ページ中断のpricing and setupで、デフォルトで$69となっているので、Open sourceをselectし、install it for freeを選択します。

こんな感じの画面。見やすいですね。

リポジトリの選択画面になるので、先ほど作った「travis-s3」を選択します。

インストールすると、Travis CIのページにリダイレクトされます。

認証画面が出てくるので、「Authorize travis-pro」を押下します。

Git hubのレポジトリと連携したTravis CIのページが表示されます

ちょっと長くなったので、続きは次回。

Travis CIの使い方

まず、Travisの公式サイトを見てみましょう。
https://travis-ci.com/
Features to help you get the job done
– quick setup
– live build views
– pull request support ☆
– pre-installed database services
– auto deployments on passing builds ☆
– clean VMs for every build
– Mac, Linux, and iOS support

やりたいのに星(☆)をつけました。ずばりauto deployments

フローが書いてありますね。

イメージとしてはBranch build flowがイメージしやすいか。
Branch build flow
-push code to Github
-github trigger
-build passes
-Travis CI deploys to server
-Travis CI tells team all is well
pushしてテストにパスすると自動でデプロイされる。
なるほど、なかなか良い。
概要は大体イメージできたので、早速やってみましょう。

セキュリティパッチとは何か?

セキュリティパッチとは、プログラムの脆弱性やセキュリティホールなどが発見された際に、それらの問題を修正するためのプログラムのこと。
ソフトウェアやOSなどの製品では、リリースされてから幾つか問題が発見されることがある。

ミドルウェアとソフトウェアの違いはなに?

ミドルウェアって何???

ミドルウェアは、アプリケーションとOSの中間的処理を行うソフトウェアのこと
ということは、ミドルウェアもソフトウェアの一部って理解でよさそうだ。
つまり、ミドルウェアはソフトウェアの一部だから、ミドルウェアとソフトウェアの違いという質問自体が愚問といって良いだろう。

では、OSは例えば、CentOS7.0として、アプリケーションをLaravel5.7とした場合、PHP、MySQL、Composerなどはミドルウェアと呼んでよいのだろうか?

Web
Apache, IIS, Nginx
サーバーを提供しているこれらはミドルウェアになる。

Application
Tomcat, JBoss, WebLogic Server, WebSphere Application Server, Cosminexus Application Server
Tomcatもミドルウェアに含まれる。わかる気がしますね。

Database
MySQL, Oracle, PostgreSQL, SQLServer, DB2
はい、Mysqlもミドルウェアになります。

その他
arcserve, backup exec, netbackup, netvault, jp1, senju, systemworker, tivoli, websam, hinemos, zabbix, clusterpro, hacmp, haモニタ、heartbeat, lifekeeper, mscs, primecluster, serviceguard, vcs
zabbixもミドルウェアですか。アプリケーションのイメージありますけど。。

色々調べると、DBMSやモニター類が代表的なようですね。phpなど、言語はあまりミドルウェアとは呼んでないようです。

169.254.169.254 port 80: Connection refused

Failed to connect to 169.254.169.254 port 80: Connection refused
ん? なんだこれは?

git hub issueを見てみましょう。
https://github.com/future-architect/vuls/issues/402
そもそもvulsってなに?
-> 脆弱性検知ツール Golangだあああああああああああああああああ
osはcentosの模様

で、issueを見ると、
>Yes, if you don’t use AWS, you can ignore this error.
awsでなければ無視していいよ、とのこと。
え、awsなら、何のエラー???

そもそも、169.254.169.254は、ping meatdata serverのことらしい。
metadata serverとは? :メタデータ環境で個別ユーザーまたはユーザーグループを表すメタデータオブジェクト?

メタデータサーバは、各データ(ファイル)の保管場所、保存方法等のメタデータ管理に利用される。

え、メタデータって何?HTMLのmetaのこと??
データの付帯情報

つまり、メタデータサーバーは付帯情報を保管しているサーバーって理解であってる?

aaaaaaaaaaaaa、なるほど

169.254.169.254にアクセスして、IPやホスト名、VPC情報などインスタンスのメタ情報が保存されている!?

169.254.169.254 port 80: Connection refused だから、インスタンスのメタ情報サーバーへのアクセスが禁止されているってことね。了解!