Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
サーバがだいたい CentOS 5/6 でsshの設定においてSFTPがオフになっていると、ansibleを使おうとしたときにいきなりファイル転送ができなくてハマる。 まず第一に、RHEL6およびそれ以前において OpenSSH が ControlPersist オプションをサポートしていないため、ansibleは paramiko というライブラリを使おうとする。 When using Enterprise Linux 6 operating systems as the control machine (Red Hat Enterprise Linux and derivatives such as CentOS), however, the version of OpenSSH may be too old to support ControlPersist. On these op
Ansible勉強会に行って来たので,感想とかをつらつらと. connpassで参加登録した時は補欠100番目とかでしたが,イベント開始の2時間前とかに繰り上がりの連絡がきて急いで行ってきました! 急なお願いにもかかわらず早退をさせてくれた会社に感謝です. とりあえず @tagomoris さんの話は圧巻でした.規模はやはり違いますね. お話されていた,Dynamic Inventoryは有効活用していきたいと思いました.むしろ,使わなかったら,大規模化で死亡する気が... zabbixのプラグインもあるらしいので連携がんばってみようと思いました. 発表者の方の中で割りと言われていたのは,公式のBest Practiceに素直に従うと,やりにくいということでした.一部ディレクト構成をかえたり,ペライチのPlaybookで管理するようにしているらしいです. @saito_hideki さんが
Ansible で Cisco機器の操作を試してみたいけど、自宅に検証用の機器がなかったり する逸般のご家庭じゃない方がいらっしゃると思います。 おなじみGNS3をつかってAnsibleの操作を行ってみたいと思います。 今回はAWS EC2でUbuntuを作った後、GUI,GNS3,Docker,ansibleをインストールして 体験環境を構築します。 もちろんお手元の環境でもよいと思います。 環境構築 ubuntu まずEC2でUbuntuを用意します。 terraform で実行しました。 provider "aws" { access_key = "${var.aws_access_key}" secret_key = "${var.aws_secret_key}" region = "${var.region}" } resource "aws_instance" "ubuntu"
Ansibleの勉強会あるといいねーという話をしていたら開催されることになったAnsible勉強会#1にいってきた。んでしゃべってきた。 Ansible 勉強会 #1 - connpass Ansible 勉強会 #1 - 資料一覧 - connpass 開催はIanががんばりました。おつかれ! あとレッドハットさんの会場を借りての実施がたいへんスムーズですばらしかった。なぜか申し込みが殺到して、新宿のほうでリモート会場まで用意されたようです。なんだそれすごい。 使ったこと無い人もけっこう参加してたようで、まあどういうものかは伝わったのかなあ。ユーザがどんどこ増えるとよいですね。 で、いろんな人がいろんな話をしててだいぶ面白い感じだった。わかりやすいansibleとはいえ他人の使いかたを聞いてると知らないこともちらほら出てくるものなので、勉強会やってるとそういうのがあってよい。 しゃべって
この記事は Ansible Advent Calendar 2014 – Qiita の6日目の記事です。 お久しぶりです。Perfumeエンジニアの@massa142です。 (明日はWOWOWでのPerfume Nightです。このために今日WOWOWに加入しました(`・ω・´)キリッ) 仕事で新規開発をすることになってその開発環境を構築するのに、Vagrant × Ansibleの組み合わせがとても便利&お手軽だったので、ここでAnsibleについて紹介していこうと思います。 Ansibleってなに? AnsibleとはPython製の構成管理ソフトウェアです。 詳しくは今年1年間でAnsible界隈ではどのような変化が起こったのか。の記事をご覧になって下さい。 公式ドキュメントはこちら。 こういったプロビジョニングツールとしては他にchefなども有名ですが、個人的に以下のポイントがA
role毎に別のgitレポジトリだと開発時の手間が煩雑 roleを作成してAnsible Galaxyに登録するワークフロー - Qiitaでは1つ1つのroleごとにgitレポジトリを作成して、Ansible Galaxyに登録し、ansible-galaxy install でローカルに取得して利用していました。 が、それぞれのroleを開発中の場合は、修正してgitレポジトリにあげて、ansible-galaxy install を --force つきで実行して更新するという手間が面倒でした。 git subtreeを使ってみたら便利でした そこで、git subtreeを使って各role毎にgitレポジトリは作成しつつ、その場で修正してコミットするというのを試してみました。 git subtreeを使うのは初めてでしたが、開発コラボレーションのヒント from Atlassian
Ansibleは、定義されたインフラ設定を複数のサーバに対し、同時に適用することができます。 この時、どのサーバに対し設定を行うかを定義するのが inventory です。 例えば、hostsというファイルにinventoryを定義します。 基本的なinventory inventoryは、一言で言えば「対象サーバの一覧」です。 inventoryファイル(歴史的にhostsというファイル名にすることが多い)は、次のようにホスト名の列挙となります。 10.0.11.121 10.0.11.122 10.0.21.100 名前解決ができてSSHアクセス可能であれば、ホスト名、IPアドレスでもホスト名のどちらでもOKです。 group inventoryでは、次のようにホストをグループ化することができます。 [web] 10.0.11.121 10.0.11.122 [batch] 10.0.
はじめに 藤本です。 昨日、Packerのバージョン0.9がリリースされました。Chef ProvisionerのWindows対応や、OVA形式でのAWSへのインポートなどいくつかの機能が追加されました。今回はその中でもAnsible Provisionerについてご紹介します。 リリースノートはこちら 概要 Packerには今までAnsibleのProvisionerとして、Ansible Local Provisionerがありました。Ansible Local ProvisionerはPlaybookをビルドOSに送信して、ローカルでAnsibleコマンドを実行するというものでした。事前にAnsibleをインストールしていなくてはならないことでAWSなどで標準OS AMIを利用する場合、Shell ProvisionerでゴニョゴニョとAnsible外で設定を入れえなくてはいけなか
現在、ansible-containerプロジェクトは開発終了しています。詳細は同プロジェクトのGitHubページをご覧ください。 昨今利用者が増えている構成管理ツール「Ansible」については以前にも紹介したが、このAnsibleをDockerコンテナのビルドに使用するツール「Ansible Container」が登場した。Ansible Containerを利用することで、Dockerコンテナイメージをより簡潔に管理できるようになる。今回はこのAnsible Containerの概要と基本的な設定方法を紹介する。 Ansible Containerとは Dockerコンテナを作成するための方法は複数ある。たとえばdockerコマンドには、「Dockerfile」という設定ファイルを元にコンテナを作成する「docker build」サブコマンドが用意されているが、これ以外にもDocke
OpenStackディストリビューション「RDO」を用いて、実際に動作するOpenStack環境を構築しながら、OpenStackの利用方法や内部構造を学ぶ特集の第8回です。今回は、OpenStackとDockerを組み合わせて、仮想マシンインスタンスの作成からアプリケーションの実行までをまとめて自動化する方法を紹介します。 「基礎編」第4回では、1台の仮想マシンインスタンス上でDockerを利用しましたが、ここでは、複数の仮想マシンインスタンスが連携する環境を構築します。OpenStackによって仮想マシンインスタンスの作成そのものは自動化されていますが、アプリケーション環境が複雑になると、手作業での環境構築には時間がかかります。 そこで、自動化ツールのAnsibleを利用して、一連の作業を自動化していきます。Ansibleには、OpenStackやDockerを操作するモジュールが用意
PackerとAnsible Local Provisionerを使ってDockerイメージを作成するためのメモ。 Fabrication by Extreme Ben はじめに 今回の目的 Packer/Ansible Local ProvisionerによるDockerイメージの作成を試してみる。 サンプルとしてgolangでwebサービスを開発するためのローカル開発環境を構築する。ローカル開発環境が必要とする要素は以下とする。 golangツール CUIベースで開発するため必要な各種ツール(zsh/vim/tmux/git…) データベース Dockerコンテナは以下2種類用意する。 CUIベースでの開発環境となるアプリケーションコンテナ 開発ユーザのHOMEとなるデータボリュームコンテナ アプリケーションコンテナはイミュータブル前提で、開発ユーザのHOMEはデータボリュームコンテ
ansible-sample ├── hosts ├── playbooks │ ├── include │ │ ├── apache-install-playbook.yml │ │ ├── common-playbook.yml │ │ ├── nginx-install-playbook.yml │ │ ├── php-install-playbook.yml │ │ ├── postfix-install-playbook.yml │ │ └── wordpress-install-playbook.yml │ ├── webserver-playbook.yml │ └── dbserver-playbook.yml │ └── templates └── apache-vhosts.conf.j2
Ansibleは最近使い始めている方も増えてきているという話を聞きます。 Ansible Meetupでは、使い方、事例、ベストプラクティス、使っていて困った点、プラグインやモジュールなど、など、Ansibleに関わる話を聞けると思います。 Ansible http://www.ansible.com/home ドキュメント http://docs.ansible.com/ 前回のmeetup Ansible Meetup in Tokyo 2014.09 http://ansible-users.connpass.com/event/7942/ タイムテーブル 18:30 開場 19:00 開始 19:10 「Ansibleを結構使ってみた」 (@bungoume) (日経電子版) 19:40 「Ansible 2.0」(@r_rudi) (ツキノワ) 20分です (このあたりで一旦休憩
さくらインターネットでは、今年4月からIoTプラットフォームの sakura.io をサービス提供しています。 sakura.io は、さくらのクラウド上で本番・検証環境を構築しており、数百台のサーバーを利用しています。 私はリリース直前にチームに参加し、開発の傍ら運用改善活動をしていました。 その結果としてTerraform を導入し、Terraform (+ Terraform for さくらのクラウド) + Ansible で運用することになりました。 導入までの課題と、どのように導入・利用しているのか、について書きたいと思います。 運用の課題 検証環境と本番環境で構成に差分があり、それに気づきづらい mesos+marathon を利用したコンテナ実行環境を使ったマイクロサービスアーキテクチャになっていて、それ以外にも、redis, memcached, メッセージキューなどいろい
はじめに Ruby on Rails の登場以降、アプリ開発者がコマンドラインに触れる機会がとても多くなりました。また、昨今は DevOps 時代などとも言われアプリ開発者にも Linux の知識が求められています。 このため、コマンドラインの使用を前提としたツールや情報がとても増えてきているのですが、これらのほとんどは Windows では動作せず、Cygwin で何とかしようとしても徒労に終わることが少なくありません。 そこで仮想マシン上に開発環境を構築しようと考えるわけですが、これまでは OS のインストールから始まり、ユーザの作成、パッケージのインストール、共有ディレクトリの設定などなど、とても手間が掛かるものでした。また、プロキシサーバの設定につまづいたことがある方も多いかと思います。 今回は Vagrant と Ansible を組み合わせて上記の問題を解決する手順を紹介します
ansibleを使ってみた なんでansibleかというと 従来の物と比べる時にエージェントが要らないという 考えてみれば色々入れるからこそ構成ツールなのにまず入れろってのは無いよな まずはインストール pythonのeasy_installとかpipとかvirtual_envとかって考えてたら 当たり前のようにbrewにてパッケージ管理されてました。 $ brew info ansible ansible: stable 1.6.2, HEAD http://www.ansible.com/home /usr/local/Cellar/ansible/1.6.2 (867 files, 9.9M) * Built from source From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/an
RHEL 9 で SELinux を無効化するには grubby --update-kernel ALL --args selinux=0 コマンドを実行する必要があります。 上記コマンドを実行した場合、「/etc/default/grub」ファイルあるいは 「grubby –info=ALL」の実行結果に「selinux=0」という記述が追記されます。 現状では SELinux に関わる記述は特にありません RHEL 9 サーバの現状設定 : grub # cat /etc/default/grub GRUB_CMDLINE_LINUX="console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295" GRUB_TIMEOUT=0 GRUB_EN
初エントリとなります。業務では主にインフラ周りを専門にエンジニアをしています。2015年12月はCentOS7.2がリリースされたり、phpがメジャーバージョンアップして7.0となったりと、色々と話題になった月でした。(少々、投稿する時期がずれてしまってはいますがw) それらをさっそくAnsibleで使ってみよう! + 色々と試してみようということで今回は以下の構成を光の速さ(盛りすぎ)で構築することにしました。 ※あまりに悠長に記事を書いていたら、投稿しようとした本日、Ansible2.0が公開されてしまいましたw GitHub : sak-2/ansible-example つかうもの インフラ さくらのVPS(v4) SSD 1G CentOS7.2 (OS) ミドルウェア nginx 1.8.0 php7.0-fpm (アプリケーション) MariaDB(SQL) 5.5.44 フ
Red Hat の杉村です。8月1日に Ansible の TSE (Technical Support Engineer) として入社しました。 入社後には12週間のカリキュラム (90 day onboarding plan) が組まれていて、サポートエンジニアとしては未経験だったわたしでもうまく立ち上げてもらえる仕組みが整っていました。もうすぐ終わりですので振り返ってみようと思います。 Week 1 同僚とランチ! 業務で使うPCやツールのアカウント設定 チャットツール チケットシステム AWS GitHub e-learning で心構え系のトレーニングやオリエンテーション チケットの対応業務のワークフロー Ansible Tower のインストール (いきなりか!) Ansible Tower のアップデート Ansible Tower の e-learning course D
Python製サーバープロビジョニングツールAnsibleの勉強会です。 Ansibleのホームページ ドキュメント ワクワクしてAnsibleを楽しく勉強しましょう! 発表 Ansible の基本 + MySQL レプリケーションを設定する事例 by @IanMLewis 19:00~19:30 dynamic inventoryが便利な話: no more host list! by @tagomoris 19:30~20:00 LT 20:00~21:30 LT募集を終了しました! callback pluginを使ったタスク実行時間の可視化について(案) by @rudy AnsibleのJUNOS設定モジュールを書いてみた by @saito_hideki インフラ屋とAnsible(仮) by @LaughK 目指せ、サーバー構築1200台(仮) by @myb1126 構成管
「Ansible 2.0」の開発にあたっては、大がかりな設計の再構築によってさまざまな新機能の追加を可能にしており、playbookをpythonなどの言語で記述できるようにし、playbookやタスクの記述にともなう負担の軽減や、ユーザー間でのタグや関連付けを利用したタスクのグループ化を実現している。 新たな記述方法を採用したplaybookの処理機能は、完全に1から作り直し、エラーをよりわかりやすく提示するとともに、YAMLによる修正のアドバイスを提供する。また、バージョン1.9.xではタスクを行単位で実行していたためループ機能が利用できなかった(バージョン1.6において削除されていた)が、「Ansible 2.0」ではタスクをダイナミックに実行するため、ループ機能が復活した。 さらに、従来バージョンではすべての対象ホストに対して単一のタスクのみ実行可能であったが、「Ansible 2
構成管理ツールとしてAnsibleを使って開発環境を作っているんだけど(本番でも使えるようにとかはまだできてない)、特定のコマンドの実行結果によって次の処理をスキップするかどうかみたいなのを制御したい場面がある。 例えばcentos6.xでnginxの設定を行いたいとすると、以下のようになる。 - name: get nginx rpm get_url: url="http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm" dest="/var/tmp/nginx-release-centos-6-0.el6.ngx.noarch.rpm" - name: add nginx rpm yum: name=/var/tmp/nginx-release-centos-6-
Ansibleは選れた構成管理ツールですが、構成する内容が複雑になればなるほど辛くなります。 これはプログラム(ソースコード)と同じです。 複雑になった構成を整理し、可読性と再利用性を高めることが求められてきます。 今回はplaybookを整理する時に、最初に覚えなければならないRoleについてまとめます。 Roleとは? Roleは、一言で言えばplaybookで読み込むモジュールです。 playbookは複数のRoleを読み込むことができるため、構成する内容を適切な粒度のRoleに分割し、それをインクルードする形でplaybookを構成するのです。 言い換えれば、Roleはクラス・モジュール・ソースファイルと言った概念と変わりません。 肥大化する構成を適切な粒度で分割するための道具です。 Roleの単位 Roleをどのような単位で作成するかは、ケースバイケースです。 詰め込みすぎたロー
ansibleの勉強シリーズ第4回です。 今回は「これは大体みんなハマるだろうなあ」という部分の解決策についてです。 パッケージのグループインストールしたいんですけど? CentOS7でファイヤーウォール止めたいんだけど? apacheインストール時にバージョン指定したいんですけど? gitモジュール使ってみたらエラー起きたんですけど? rbenvのパスと初期化コマンドが・・・ bundlerは .rbenv 配下にインストールしたいんですけど? rbenvで指定したrubyが既にインストール済みか調べたいんですけど? ↑こうやったら「rbenv: command not found」って言われた!! gemでインストールする時 .rbenv 配下にインストールしたいんだけど? subversionでcheckout済みかどうか調べたいんだけど? registerした値をechoして確認し
渡辺です。 過去にも同様のエントリーが存在するのですが、AWSといえばEC2ということで、最新のAWSモジュールを利用してEC2インスタンスを作成してみます。 Ansibleを使ってEC2インスタンスを立ち上げる | Developers.IO Using Ansible on AWS – 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
It has recently come to my attention that many people don’t use virtual machines for development, instead polluting their system with various dependencies and making life harder for themselves. Unfortunately, even the people who do use VMs for development often perform provisioning and updates by hand, thus ending up with slightly different configurations for development, testing and production, w
最近は Ansible で Mac をセットアップするのが流行っているようですね。 「新年度の組織変更のついでに Mac が支給されたウェーイ」なのを機に Ansible に触ってみようという方も多いのではないかと思います。 ところが Ansible のその手軽さゆえ、入門に際して誰しもつまずくのが、 「ググる記事どれもこれもが断片的かつ俺流で、構成管理の作法も正解もわからない... (◞‸◟)」 という点ではないでしょうか。 そこでこの記事では、断片的な個別事例ではなく、Ansible の基本概念や Mac への適用方針など、構成管理サイクル全般の設計に役立つトピックを網羅的に解説してみたいと思います。 ざっくり macOS Sierra + Ansible 2系の環境を想定していますが、基本はどのバージョンでも大きく違わないはずです。 ご参考になれば幸いでございます! (๑˃̵ᴗ˂̵)
下記の記事で紹介したスライド共有システム「nslides」ではAnsibleを用いてインフラ周りの設定をしています。今回はその中からElastiCacheでredisを立ち上げてRails5から利用する設定をしている部分を紹介します。 devchick.hatenablog.com nslidesはこちらで公開中です。 公開終了しました (2017/02/27) システム構成: アプリケーション Ruby 2.3.0 Rails 5.0.0.beta2 puma 2.16.0 sidekiq 4.1.0 インフラ AWS EC2 - Amazon Linux AMI 2015.09.1 x86_64 HVM AWS ElastiCache - Redis 2.8.24 Ops Ansible 1.9.4 Capistrano 3.4.0 コードはGitHubにて公開しています。 https
はじめに GCE上のプロセスをStackdriverで監視していて、プロセスが落ちたらSlackにアラートを飛ばす・・・・ ちゃうねん!アラートが飛ばすことが目的じゃなくて、サービスをいち早く復旧させるのが目的やねん! どうせAlert飛んだあとにやることは、systemctl status XXXXXでステータス確認して、sudo systemctl start XXXXXをするだけじゃん。 ということで、Stackdriver+Gitlab-CI+Ansibleを連携させて、アラートを飛ばすだけじゃなく、サービスを復旧させる仕組みを構築してみようと思う。 チームのメンバーがSlack botでもいい感じに自動復旧の仕組みを作ってる記事があるので、Slack botでやりたいんだよ!俺は!っていう人は↓を参考にすると幸せになれる。 Stackdriverとslackbotでサービス自動復
インフラ技術週間も最終日となりました。今週の1週間の記事を振り返ると実はすべてがDocker絡み。 何をやるにしてもDockerを中心としたコンテナベースで考えることが当たり前になってきている感じですね。 ということで最終日もDockerを絡めてGitLabを使ったインフラCIについて紹介します。 この記事を読むと何ができるようになる? 記事全文は長くなるので要点だけ書くと。 この記事ではGitLab(GitHubのようなGitを管理するOSS)を使ってAnsible(構成管理ツール)やserverspec(インフラテストツール)のコードをGit管理。Docker上のコンテナを使って自動構築→自動テストというインフラCI/CDの基礎となるOSSの技術を知ることができます。 CIというとTravisCI、CircleCI、WerckerとかSaaSで便利なものもたくさんありますが、今回はあえ
コンニチーハ、千葉です。 今日はDockerコンテナとEC2が混在している環境をインベントリで管理してみます。 といってもそんなに難しくありません。 まずは、ansible.cnfでssh_configを設定するを参考にEC2環境ホストのセットアップをします。 EC2向けの設定 ssh_config Host ec2-1 User ec2-user HostName xxx.xxx.xxx.xxx IdentityFile xxx.pem Host ec2-2 User ec2-user HostName xxx.xxx.xxx.xxx IdentityFile xxx.pem Host ec2-3 User ec2-user HostName xxx.xxx.xxx.xxx IdentityFile xxx.pem ansible.cfg [ssh_connection] ssh_arg
lineinfile Ansibleでファイルに行を追記したり置換したりした場合、lineinfileを使うことが多いと思いますが、複数行追加したい場合だと、ちょっとやりずらいところがあります。 下記のように書くと、テキスト内に指定した行の内容がなければ末尾に追加されるので、それを繰り返すことによって末尾に複数行入れられます。 tasks: - name: 末尾に複数行追加 lineinfile: dest=./test.txt line={{ item }} with_items: - '1行目' - '2行目' これが特定の箇所に入れようとすると面倒になります。 たとえば、insertafterを使って指定した行の後に入れようとして、下記のように書くと、、 tasks: - name: 特定の場所に追加 lineinfile: dest=./test.txt insertafter='
Voici le journal de bord d’une vétérante. Vendredi : je me suis levée, j'ai regardé l'heure il était 8h je me suis dit "il est tôt mais c'est pas grave, j'ai la patate." J'ai pris mes affaires, j'ai mis mon t-shirt rouge (TSR), j'étais en reard. J'ai couru. Je suis arrivée à la fac. J'ai monté les escalier, j'ai pris des welcom pack, jeles ai descendus, je suis remontée, j'ai pris d'autres welcom
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く