nazoです。 ansibleにはクラウド操作モジュールがいくつか用意されており、特定のインスタンスの操作とは別に、クラウドインフラの構成管理も行うことができます。 今回はそれを利用して、ECSのタスク定義とサービスの更新をansible経由で行いたいと思います。ansibleは2.5以上のバージョンが必須になります。執筆時点ではベータなので、 pip install ansible==2.5.0b2 でインストールしてください。 ansibleを使うメリット ECSのタスク更新を行うツールは、 ECS CLI が最もメジャーかと思いますが、ansibleを使うことにより、 ansible-vault と組み合わせて機密情報をそのまま保存することができます。 ECSを Twelve-Factor App に則って設計すると、タスク定義の環境変数にパスワードなどの機密情報を入れることになりま
以前はVagrantを使ってansibleのテスト環境は用意していたんだけど、 vagrantはsnapshotが取れる利点がありつつも、VMを使うのでちょっとというかそれなりに遅くて、 何度も実行するansibleのテスト環境にはちょっと不便だなーと思っていたのですが、 最近Dockerを使ってsshdを起動するだけの環境を用意すれば簡単にテスト環境が作れて便利だったので書いておきます。Dockerfileを書く ansibleを流す対象のイメージはDockerfile の FROM に書いておけばよくて、 CentOSとかDebianとか好きなOSを選べばいいと思います。Dockerfileを置いたディレクトリに id_rsa.pub を置いておくと authorized_keys にコピーされるというソリューションです。 FROMamazonlinux:latest MAIN
この記事は Ansible Advent Calendar 2017 の一部です。 ここ数年、Advent Calendar の季節くらいしか記事を書かなくなってしまいました。もうちょっとアウトプットしたいのですが、色々手を出しすぎてなかなか時間が取れないのが悩みです。 さて、Ansible 2.4 をお使いの方は、以下のような警告をみたことがある方もいると思います。 [DEPRECATION WARNING]: The use of 'include' for tasks has been deprecated. Use 'import_tasks' for static inclusions or 'include_tasks' for dynamic inclusions. This feature will be removed in a future release. Depre
3月にサーバーワークスにJoinした、たかえす です。初ブログですがよろしくお願いします! 前職でも使っていたAnsibleについて書いていきます。 はじめにPCを買い換える時などローカル環境の状態や設定情報がどうなっているか分からなくて、買い替え後にセットアップするのが大変!ということは「あるある」かなと思います。そんなときにAnsibleなどのプロビジョニングツールを使ってドキュメント化し、自動化しておくととても便利です。事始めということで、Macのソフトウェアパッケージの管理方法を紹介します。 前提条件 パッケージ管理のツールとして以下のものを利用します。 HomebrewMacではよく利用される主にCUI関連のパッケージ管理 Homebrew CaskGUI関連のツールのパッケージ管理 事前準備 Homebrewのインストール 公式サイトにもありますが、以下のコマンドを実行し
コンニチハ、千葉です。 Systems ManagerのAutomation機能を利用するとカスタムAMIの作成を自動化できます。 AutoScaling利用時、Packer等でカスタムAMIを作成すると思いますがこれの置き換えを想定しています。EC2上でPackerを動かしている場合、EC2を減らすことができるかなと思います。 環境 以下の環境で試しました ソースAMI:AmazonLinux リポジトリ:CodeCommit プロビジョニング:Ansible 2.2.3.0 やってみた リポジトリ作成 Ansibleコードを格納するリポジトリを作成します。リポジトリは、GitHubやS3などでもいいと思いますが、今回はEC2利用時のリポジトリへのアクセスをシームレスに行えるCodeCommitを選択しました。EC2へIAMロールをアタッチすることで簡単でセキュアにCodeCommit
![[AWS]Systems ManagerのAutomationとAnsibleを使ってAMIを作成する | DevelopersIO](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2f58278067871ebaae68a873315f4dd4b9b78f6b5a%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Fdevio2023-media.developers.io%252Fwp-content%252Fuploads%252F2014%252F05%252FAmazon_EC2.png&f=jpg&w=240)
概要 Ansible入門として,AmazonLinuxイメージを展開したDockerコンテナ上にWordPress環境を構築するplaybookを作成する. また,ローカルでのDockerコンテナ生成からplaybook適用後のDocker Imageの生成までを,Packerを用いて一括して行うようにする. 今回はAWS上に展開することを想定して各種ファイルを作成したが,実際にWordpressをAWS上に展開する場合はAWS Marketplaceを利用した方が圧倒的に楽なのでそちらを使うべきだろう.Dockeramazonlinuxイメージをpullしておく. テスト環境として, %docker run -i -t -d --nameaws -p 3000:80amazonlinux としてコンテナを生成し,ここに向けてansibleを実行する. Ansible 下準備
前回、chefからansibleへの移行記事をまとめたが、その際にさらっとgather_factsの高速化に時間を使ったと触れた。そもそも素でansibleを使うとデフォルトで処理前段にgather_factsの処理が入る。これが何をしているかというと、各ノードのOSやスペック、ネットワーク情報などの収集だ。ansibleはサーバサイド・プッシュな動きをするので、ansible-playbookを実行すると対象ノード全てに処理を行う。gather_factsの処理も同様で対象ノード数に比例して処理時間が伸びていく。1ノードならまだしも、10ノードを超えだすとその待ち時間は耐え難いものに。chefサーバの場合はサーバプロセスが存在したので、その中でこの手の情報をキャッシュしてくれていたのだろうが、ansibleにはサーバプロセスが存在しないため、毎回律儀に各ノードから取得する羽目になる。 g
渡辺です。 過去にも同様のエントリーが存在するのですが、AWSといえばEC2ということで、最新のAWSモジュールを利用してEC2インスタンスを作成してみます。 Ansibleを使ってEC2インスタンスを立ち上げる | Developers.IO Using Ansible onAWS – EC2インスタンスを作成する | Developers.IO グループ変数でインスタンス定義を明確にする 可読性の高いグループ変数は、このシリーズのテーマです。 今回は、次のようなグループ変数でEC2インスタンスを定義したいと思います。 ec2: - name: FrontWebA instance_type: t2.small image: ami-1a15c77b instance_profile_name: web key_name: dev-key subnet_name: FrontA gro

渡辺です。 Ansible2.2より、AnsibleのAWS関連モジュールが充実され、AnsibleでAWSリソースの構成管理を行うことが現実味を帯びてきました。AWSリソースの構成管理を行うには、CloudFormationやteraformなど、他の選択肢も多くあります。 その中でも、EC2インスタンスの構成管理をAnsibleで行っているならば、利用するツールを共通化できるのが最大のメリットです。 今回は、そんなAWSリソースを構成管理するとき、作成するPlaybookの設計ポリシーを解説します。localhostのlocalコネクションを利用する 一般的に、Ansibleでは、対象ホストにSSH接続を行い、構成管理を行います。AWSリソースの場合、対象となるのはVPCなど、AWSリソースであるため、SSH接続は行えません。 このようなケースでは、対象ホストにローカルマシンを指

が、あると思います。 shellモジュールでヒアドキュメントを使うと・・・github.com コチラのissueにコメントがありましたが、 - shell: | cat <<EOT a b EOT の結果は a b (半角スペースがaとbの前に入る) という。。 大半のケースでは大丈夫でしょうが、困る場合もあります。 対策 Ansibleのコアディベロッパーが推奨しているらしい方法 scriptモジュールを使う。 http://docs.ansible.com/ansible/script_module.html ローカルにあるファイルをリモートに転送して実行してくれます。 例えば、 roles/common/file/script.sh roles/common/task/main.yml な構成をとっていた場合、roles/common/task/main.ymlでは - scri
Ansible playbookを作成する過程でプロビジョニングが正しく行われていることをテストすることがあります。その際に利用されるテストツールの一つとしてServerSpecというツールがあります。( TestKitchenとDocker・Serverspecで作るAnsibleTDD環境 )ServerSpecはサーバ間の通信が正しく行われていることやプロセスが正しく起動していることなどのテストが行えます。そのServerSpecを利用したAnsible専用のテストツールとして AnsibleSpec というツールが存在します。AnsibleSpecはSeverSpecと同じ構文で記述ができ、テストファイルをAnsibleのプロジェクト内に組み込めるという特徴があります。 今回はAnsible専用のテストツールとして公開されているAnsibleSpecの特徴および使い方を紹介します。

Windows「に」Vagrant を入れて仮想環境を作成したという記事は Web 上にたくさん見つかるけど Vagrant でWindows 環境「を」構築したという記事はあんまり見つからなかったので、メモ。 また、Vagrant や Ansible というインフラ系ツールについてよく耳にするものの実際触ったことがなくて それぞれでできること等ちゃんと理解していなかったので、勉強も兼ねて。 動作環境 今回使用した各ツールのバージョンは以下の通り。Mac OS X Yosemite 10.10.5 Vagrant 1.8.1 Ansible 2.0.0.2Python 2.7.10 Virtualbox 5.0.10 pywinrm 0.1.1 はじめにMac で Web アプリケーション開発をしていると、IE での動作確認のためにWindows 環境を使いたいことがよくある。

こんにちは。@jedipunkz です。 私もインフラのプロビジョニングツールとして Chef ではなく Ansible を使うことが増えたのですが、Chef を使っていた頃に同じく利用していた test-kitchen が便利だったので ansible と併用できないかと思い試してみました。test-kitchen はDocker コンテナや EC2 等を起動して Chef, Ansible 等で構成をデプロイし serverspec 等のテストツールで構成をテストできるソフトウェアです。AWS EC2 でデプロイしてもいいのですが、EC2 を起動してデプロイして失敗したら削除してのサイクルを回すことを考えるとだいぶ面倒なのでDocker + test-kitchen を使ってこのサイクルを高速に回す方がメリットが大きそうです。今回はDocker + test-kitchen を使

DockerコンテナでAnsibleをテストする¶ Ansible 2.0になり、Docker connection pluginが標準で入りました。これにより、Docker内にsshdを立てることなくAnsibleを直接実行できるようになりました。 すでに導入されている方も多く、かなり今更ではありますが、Dockerコンテナに対してAnsibleを実行してテストする方法についてここに記します。 参考GitHubリポジトリDockerに対する場合の制限¶ まず最初にAnsibleをDockerコンテナに対して実行する際の制限についてです。 基本的にはすべての機能が使えます。ただ、以下の制限があります。 /etc/hosts, /etc/resolv.conf, /etc/hostnameは書き換えできない これらのファイルはDockerがbind mountしており、書き換えられるが、置
土日となると天気が悪い北海道の渡辺です。 今日は七夕の創立記念日ということで、AnsibleのAWSモジュールを使ってIAM User, Group, Role を管理する方法を紹介します。 iam / iam_policyモジュール Ansibleのiamモジュールとiam_policyモジュールはコアモジュールのひとつで、AWS上のIAMリソースとポシリードキュメントを管理します。 IAMリソースは、CloudFormationでも管理可能です。 Ansibleのモジュールを利用した場合、ポリシードキュメントの再利用やテンプレートが利用できる点がポイントとなってきます。 iamモジュールでIAM Roleを作成する iamモジュールは、iam_typeでIAMリソースの種類を指定し、User / Group / Roleを作成します。 profileとstateを指定すること以外で特別

Ansibleを使ってリモートでコマンドを実行する¶ 前回の記事 でAnsibleが単なる構成管理ではなく、オーケストレーションというところまで 踏み込んだ設計をしているという話を述べました。 オーケストレーションには多くの意味がありますが、そのうちの一つが、 コマンドをリモートシステムに送りつける機能 です。もちろんAnsibleでできます。とても簡単に。 Ansibleコマンド¶ 普段使う ansible-playbook コマンドではなく、 ansible コマンドを使います。 % ansible webservers -a "free -m" Web01 | success | rc=0 >> total used free shared buffers cached Mem: 3831 444 3387 0 87 157 -/+ buffers/cache: 199 3632 S
Platform solutionsArtificial intelligenceBuild, deploy, and monitorAI models and apps.Linux standardizationGet consistency across operating environments. Application developmentSimplify the way youbuild, deploy, and manage apps. AutomationScale automation and unitetech, teams, and environments. Explore solutions Use casesVirtualizationModernize operations for virtualized and containerized work

Platform solutionsArtificial intelligenceBuild, deploy, and monitorAI models and apps.Linux standardizationGet consistency across operating environments. Application developmentSimplify the way youbuild, deploy, and manage apps. AutomationScale automation and unitetech, teams, and environments. Explore solutions Use casesVirtualizationModernize operations for virtualized and containerized work

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く