geek.conf.2

あるエンジニアの備忘録

Oracle 11gを実行するDockerコンテナをRUN

こんばんは。あらかじめ決められた僕です。
Infrastructure as a codeなツールを勉強するときはOracle11gで試す癖があります。
今回は、Oracle11gを実行するDockerコンテナを作りましたので共有します。

いきなり以下にDockerfileを貼ります。

Dockerfile for run Oracle11g

1: OSイメージはOracle Linux 6を使用
4-6:Oracleのユーザグループを作成
7-8:Oracleのユーザ作成とパスワード設定
9-10:Oracleユーザにグループを設定
11-13:ORACLE_HOME、ORACLE_BASE、インベントリー用のディレクトリをmkdr
14:Oracleデータベース用のテンプレートをCOPY
15:Oracle用ディレクトリすべてをOracleユーザの所有に設定
16:Oracle11gに必要なパッケージをyumインストール
17:Oracleに必要なカーネルパラメータが設定されたsysctl.confをCOPY
18:Oracle11gのインストールdisk1とdisk2を解凍して2つとも同じディレクトリに入れたdatabaseディレクトリをCOPY
19-20:databaseディレクトリの所有者をOracleユーザにして実行権限を付与
22-23:Oracleユーザでdatabaseディレクトリに移動
24-26:サイレントモードでrunInstaller
COPYしたdatabaseディレクトリにOracle11gインストール用の応答ファイルdb_install.rspを準備しておく
27-28:rootユーザでroot.shを実行
30:Oracle環境変数をexportするため.bash_profileをOracleユーザのホームディレクトリ直下にCOPY
ADDとCOPYだけど、ADDは解凍機能を持つので、解凍する場合に使う。単なるファイル置くだけならCOPYを使ってます。
31:Listenerとデータベースを設定するためのスクリプトoracle.shをCOPY
32:Oracleユーザのホームディレクトリ以下をOracleユーザ所有に設定
34:Listenerポートを外部に公開
35-36:OracleユーザでOracleホームディレクトリに移動
37:oracle.shを実行

よっしゃ。Dockerfileを作成したらbuildしましょう。
$ docker build -t "tsubauaaa/oracle-docker" .
割と時間かかりますが、buildが完了するとoraclelinuxとtsubauaaa/oracle-dockerの2つイメージが出来上がります。

それではRUNしたいのですが、このイメージを実行するとoracle.shが実行されます。oracle.shでは

  • .bash_oracleを読み込んでOracle環境変数をexport
  • listener.oraを作成
  • Listenerを開始
  • dbcaにOracleデータベース用テンプレートdb_create.dbtを指定してデータベース作成
  • Alertログをtail

をやります。

$ docker run -p 1521:1521 --ipc=host --name oracle-docker --hostname oracle-docker tsubauaaa/oracle-docker

コンテナを停止するとデータベースのデータは消えます。
こちらにDockerfileとかoracle.shといった関連ファイルを置いています。

github.com

こちらのサイトを参考にさせていただきました。

Installing the Oracle database in docker | Frits Hoogland Weblog

おしまい

AWS DevOpsエンジニア プロフェッショナル

いろいろとモヤモヤな僕です。AWS 認定 DevOps プロフェッショナルに合格したので、お話します。

さて、AWS DevOps に合格すると、AWSを用いた継続的なデプロイ手法、高セキュリティとコンプライアンスに準拠した設計、メトリックス取得による監視設計、おなじみの可用性と自己修復なシステム設計における技術的な専門知識をAWSに認定してもらえます。

大事なのことをざっくり言うと、テスト、デプロイの自動化や伸縮性を求めた場合に、起こる課題への解決策、実際のAWS運用を想定したセキュリティ対策をおさえておくことです。

 

合格日:2016/02/20

勉強期間:2016/01/25 - 2016/02/19
勉強方法:

模擬試験を受けた方が良いです。模擬試験を受けることで、本番試験問題のレベルと自分の知識を見比べることができます。また、試験はそれぞれ分野(自動デプロイとかモニタリングとか)ごとに出題される割合が決まっています。自分の弱点を知ることは、勉強効率を上げることに役立ちます。(なんか真面目です)

そして、BlackBelt資料を読みます。以下に僕がよく読んだBlackBeltを並べます。

AWS Black Belt Tech Webinar 2015 AWS OpsWorks

AWS Black Belt Tech Webinar 2015 AWS CloudFormation

AWS Black Belt Tech Webinar 2015 AWS Elastic Beanstalk

そんでもって今回は、OpsWorksやElastic Beanstalk の経験が乏しかったので、実際に操作しました。以下な感じが触ってみた内容です。(試験問題とこの内容は特に無関係ですよ)

・OpsWorksでアプリケーションをADDしたDockerをRUNするカスタムCookbookをカスタムレイヤーでパブリッシュ

・Gitとローカルで開発したGoアプリケーションをebcliでElastic Beanstalkにデプロイしてパブリッシュ

AWSソリューションアーキテクト プロフェッショナルで勉強した貯金があったので、受かりやすかったかと、思います。AWSデベロッパー アソシエイトさえ取れば、現在までのすべてのAWS資格を制覇することになります。すべて制覇したら、Tシャツとかくれないかな。

 

終わり

Mackerel Meetup #6 Tokyo #mackerelioでLTさせていただきました。

こんばんは。そーですね。最近、読書したいけど積んでる僕です。

こちらのイベントにてLTしてきたのでブログ書きます。

mackerelio.connpass.com

 

軽くレポリたいと思います。

・「Upcoming features in 2016」 はてなCTO 田中慎司さん

もっとも期待していたお話。特にMackerelの新機能とこれからの開発ロードマップのお話が聞けてこの時点で大満足。

 

・「ゼロからはじめるサービス監視の山と谷」 アニメイトラボCTO 小芝敏明さん

インフラ開発の内製化に至ったエピソードなど開発から運用までのリアルに絡めたお話にうなづきました。

 

・「eureka monitoring solution 〜Mackerel導入までの軌跡〜」 エウレカ 山下権人さん

Zabbix、DataDogとMackerelの競合プロダクトとMackerel選定の経緯のお話が聞けて勉強になりました。

 

さて、私は懇親会中のLTに登壇させていただきました。

資料はこちらです。

 MackerelのWebhookでSphero社のbb-8を動かすっていう感じです。

Cylon.jsとかsinatraのコードは、こちらです。

github.com

 

Mackerelは、はてなのサービスの自社監視から公開されて育ったサービスです。こういう経緯ってエンジニアとしてみると、とてもカッコイイです。自分たちのビジネスに必要だから作りました。そして、このニーズは世界中にもありますよね。それでは、皆様にサービスとして提供します。って理にかなっているし、技術力が高い会社だからできることだし、技術を使って社会に貢献していると思うし、応援したいです。

 

May the force be with Mackerel.

AWS SysOps アドミニストレーター アソシエイト

2016年初の僕です。AWS 認定システムオペレーション(SysOps)アドミニストレータ アソシエイトに合格したので、展開します。

最近資格ばかり取り組んでいますね。でもここまできたらDevOpsも受けないわけにはいかない感じです。

さて、AWS SysOps に合格すると、AWSでのデプロイ、管理および運用における技術的な専門知識をAWSに認定してもらえます。CloudWatchとか、ELB + AutoScalingの設定とかを実際に運用することを想定することが大事ですね。

合格日:2016/01/17

点数:90%
勉強期間:2016/01/06 - 2016/01/16
勉強方法:

やはり、BlackBelt資料を読むことはマストです。以下に有用と思ったBlackBeltを。

AWS Black Belt Tech Webinar Amazon CloudWatch & CloudWatch Logs

AWS Black Belt Tech Webinar 2015 スポットインスタンス & Auto Scaling

AWS マイスターシリーズ Black belt Amazon Elastic Load Balancing (ELB)

Amazon CloudWatch & Auto Scaling AWS Black Belt Tech Webinar 2014 (旧マイスターシリーズ)

そして、以下のホワイトペーパーも読みました。

Amazon Web Services セキュリティプロセスの概要

てな感じで、次回は、資格じゃないことを目標に。 

AWS ソリューションアーキテクト プロフェッショナル

おはようございます。2015年最後の僕です。
AWSソリューションアーキテクトプロフェッショナルに合格したので報告します。

AWSソリューションアーキテクトプロフェッショナルとはAWSのサービスを使ってシステムを設計できるよ、とAWSに認定してもらう試験です。

設計と言ってもその中身は、濃密で、AWSの特徴である、可用性、拡張性、伸縮性を高めることに努めたり、事業継続計画や、オンプレミスからAWSへの移行といったケースに対して、最適解を提案します。また、RDB、NoSQLの要件に沿った採用や、オンプレミスとAWSとの専用線VPNでのネットワーク設計も要求されます。

 

合格日:2015/12/25

点数:70%
勉強期間:2015/07/27 - 2015/12/24
勉強方法:
・Advanced Architecting on AWS受講

AWS クラウドサービス活用資料集 | アマゾン ウェブ サービス(AWS 日本語)は全て目を通す

Amazon Web Services パターン別構築・運用ガイドを読む

Amazon Web Services パターン別構築・運用ガイド

Amazon Web Services パターン別構築・運用ガイド

 

 これ、意外に知らなかったことが載ってたり、それなりに読んで意味ありました。

・模擬試験の正解を80%以上理解する

・あとは、以下のre:Inventまとめが参考になりました

dev.classmethod.jp

dev.classmethod.jp

クラスメソッドさんに感謝です。

 

もちろん、実際に、AWSをシステムに採用し、設計することが一番意味あります。あとは、様々なシステム要件をAWSで実現した場合を、妄想することも大事です。

 

僕もそれなりに、様々なシステムを見た経験を持っていると思ってましたが、今回の試験に取り組む中で、まだまだと感じられて、良かったです。

2015年、ベストアウトプットです。お疲れさまでした。

MCPC2級

もりっす。寝不足でした、僕です。

MCPCモバイルシステム技術検定2級とやらに受かったので、ログを記します。

通称MCPC2級ですが、ITスキルとしては、 基本情報技術者初級システムアドミニストレータ取得者相当、モバイルシステムについて顧客の要求(または提案)について理解し、ヒヤリングが可能でシステム構築の概要が判るレベルを認定してもらえます。

 

合格日:2015/11/25

受験日:2015/11/07
点数:未公表
勉強期間:27日(2015/10/11 - 2015/11/06)
勉強方法:
・モバイルシステム技術テキスト第6版

これをひたすら読む。今回は、3周して、4周目は、8章まで読みました。

その他、感想:

モバイルシステム技術テキスト第6版から、満遍なく出題され、その順番は、テキストの章ごとの順ですた。通信方式、速度、変調方式、周波数といった、頑張って、覚えたものが、思ったよりも出題されなかったです。選択肢の文章のうち、一部は合っていて、一部は間違っているような引っ掛けが数問ありましたが、基本的に、ストレートな問題でした。計算は、一問くらい出たよ。基本情報技術者相当らしいのですが、問題の量、質を比較しても、基本情報技術者より簡単と思います。ちな基本情報技術者は持っていません。

                                         f:id:tsubauaaa:20151126200200j:plain

 

 

モバイルシステム技術テキスト 第6版 ?MCPCモバイルシステム技術検定試験2級対応?

モバイルシステム技術テキスト 第6版 ?MCPCモバイルシステム技術検定試験2級対応?

 

 

Test Kitchen Windows でテストしよう Vagrantでね

はい。僕です。
最近、WindowsでChefってできるのかな、と思い、Test Kitchenしてみたので、共有します。
ほぼ、こちらのサイトを参考にしています↓
pinter.org

Test KitchenをWindowsに対してVagrantで行う準備

vagrant plugin install vagrant-winrm

これ↑しないとこうなります。

-----> Starting Kitchen (v1.4.2)
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::UserError
>>>>>> Message: WinRM Transport requires the vagrant-winrm Vagrant plugin to properly communicate with this Vagrant VM. Please install this plugin with: `vagrant plugin install vagrant-winrm' and try again.
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

WinRMをトランスポートする場合、

gem install winrm-transport

これ↑しないとこうなります。

!!!!!! The `winrm-transport' gem is missing and must be installed or cannot be properly activated. Run `gem install winrm-transport --version '~> 1.0'` or add the following to your Gemfile if you are using Bundler: `gem 'winrm-transport', '~> 1.0'`.
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::UserError
>>>>>> Message: Could not load or activate WinRM::Transport (Could not find 'winrm-transport' (~> 1.0) among 98 total gem(s)
Checked in 'GEM_PATH=/Users/tsubauaaa/.gem/ruby/2.2.0:/Users/tsubauaaa/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0', execute `gem env` for more information)
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

次に、.kitchen.ymlですが、こんな具合ので、ご利用ください。

---
driver:
  name: vagrant
  synced_folders:
    - ["./", "/vagrant"]

provisioner:
  name: chef_solo

platforms:
  - name: win2012r2
    driver_config:
      communicator: winrm
    transport:
      name: winrm

suites:
  - name: default
    run_list:
      - recipe[iis::default]
    attributes:

Vagrant boxファイルの作成

さて肝心のWindowsのboxファイルですが、
Boxcutter · GitHub
さんが様々なWindowsのboxファイルを提供していますので、こちらを利用させていただきます。
Packerを使ってboxファイルを作成しているので、Packer 0.8.2以上をインストールしましょう。
ちなみにこちらで利用するOSイメージは、評価版のWindows、boxはVirtualboxのでーす。

git clone https://github.com/boxcutter/windows.git
cd windows
make virtualbox/eval-win2012r2-standard

boxをvmwareとしたければ、

make vmware/eval-win2012r2-standard

ですな。
OSイメージをDLして、Virtualboxで起動して、boxファイルが作成されるので、時間がかかります。
boxファイルが作成されたら、

vagrant box add win2012r2 ./box/virtualbox/eval-win2012r2-standard-nocm-1.0.4.box

として、Vagrant Boxとして利用します。
てな感じで。



ハッピーウィンドウズテスツ!!