AnsibleでAWSにGoogle Chromeをヘッドレス実行可能な環境を自動構築する
はじめに
先日ひょんな事からサーバ上でGoogle Chromeをヘッドレス実行して、
スクリーンショットを撮りたい需要があったので、
AWS EC2上にGoogle Chromeをヘッドレス実行可能な環境を構築しました。
その際に、すぐに環境を再現できるようにAnsibleのPlaybookを作成したのでGithubで公開します。
3行まとめ
- SeleniumでGoogle Chromeをヘッドレス実行してスクリーンショットを撮りたい
- AWS EC2のOpenSUSEと Python3 + Selenium + chromedriver を利用
- この環境をEC2インスタンスの作成からAnsibleで構築
前提
- ansible, botoをインストールすること
- AWSのサーバー構築に使用するIAMユーザが作成されていること
- AWSマネジメントコンソールでキーペア登録していること
何を構築するのか
以下の内容をAnsibleで自動構築します。
- AWS環境
- VPCの作成
- Internet Gatewayの作成
- サブネットの作成
- ルートテーブルの作成
- セキュリティグループの作成
- EC2インスタンスの作成
- アプリケーション
- Zypperパッケージ(python3、日本語フォント等)のインストール
- Google Chromeのインストール
- python-seleniumのインストール
- chromedriverのダウンロード
- 動作確認用のサンプルソース配置
環境構築のやり方はこちらの記事を参考にさせていただきました。
AnsibleでAWS環境を構築する内容については、過去の記事を参考にしてください。
何ができるようになるのか
python3のseleniumを利用してGoogle Chromeをヘッドレス実行できるようになります。
例えば、以下のサンプルソースを実行することでサーバ上でGoogle検索した結果のスクリーンショットを撮ることが出来ます。
ちょっとseleniumをガリガリ実行するためのサーバ立てたいと思った時にコマンド一発で環境構築できます。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome('chromedriver', chrome_options=options)
driver.get('https://www.google.co.jp/search?q=chrome')
driver.save_screenshot('screenshot.png')
driver.quit()
Author And Source
この問題について(AnsibleでAWSにGoogle Chromeをヘッドレス実行可能な環境を自動構築する), 我々は、より多くの情報をここで見つけました https://qiita.com/rednes/items/399dea695f9ccacd0f17著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .