Ansible徹底入門 クラウド時代の新しい構成管理の実現 作者: 廣川英寿,平初,橋本直哉,森田邦裕,渡辺一宏出版社/メーカー: 翔泳社発売日: 2017/02/17メディア: 単行本(ソフトカバー)この商品を含むブログを見る Ansible徹底入門読了。会社での購入稟議完了。Ansible依存の弊社としては会社として持つべき本。— k1LoW (@k1LoW) 2017年3月15日 「Ansible徹底入門 クラウド時代の新しい構成管理の実現」を読了しました。 わたしのAnsibleスペック とりあえず自分のスペックを。 1.5か1.6から使い始めています。 現在は1.9をメインに使っています。 ChefやPuppetはほとんど利用していません。 受託開発をやっているせいか、結構な数のPlaybookを書いてきました。 “今"のAnsibleを教えてくれる Ansible自体は知ってい
公開鍵認証をするために、対象のサーバの指定ユーザの authorized_keys を設定するモジュール「authorized_key」があるのでそれを使用する。 前提 authorized_key モジュール実行時はパスワード認証でログインする root ユーザでログインする root ユーザの RSA鍵ファイルを作成(ssh-keygen)してあること /dev/cdrom に CentOS メディアが接続されていること 手順 プレイブック作成 setup.root.authorized_keys.yml を作成する。 --- # 対象サーバの root ユーザの authorized_keys に /root/.ssh/id_rsa.pub の公開鍵を追加する。 - hosts: '{{ hosts }}' tasks: - name: setup authorized_keys a
「シェルスクリプトって冪等性ないじゃないですか」 そんなことをよく耳にします。しかし、if文を入れるだけで簡単に冪等性を担保したシェルスクリプトを書くことができます。 今回は、私が使う条件式を紹介します。基本的な形式なものなので、組み合わせると幅が広がりますよっ! ファイル/フォルダ関係 ファイルの存在確認 -e 'ファイル名'で「ファイル名」が存在しているかチェックします。 if [ -e 'ファイル名' ]; then # ファイル/フォルダが存在していれば、ファイル/フォルダを削除するなど rm ファイル名 fi
Requirement already up-to-date: ansible in /Library/Python/2.7/site-packages Requirement already up-to-date: paramiko in /Library/Python/2.7/site-packages (from ansible) Requirement already up-to-date: jinja2 in /Library/Python/2.7/site-packages/Jinja2-2.8-py2.7.egg (from ansible) Requirement already up-to-date: PyYAML in /Library/Python/2.7/site-packages/PyYAML-3.11-py2.7-macosx-10.11-intel.egg (
普段から、Vagrant + Ansibleを用いて、チームで共通の開発環境を作れるようにしています。先月、届いた13″ rMBP early 2015に開発環境を構築していた際、Ansibleがうまく実行できないトラブルにハマりました。 全く同じBox及びプロビジョニングを使って旧環境では問題なく構築できたのに、新環境ではできないことに頭を悩ませましたが、2時間ほど試行錯誤した結果、解決できたので、その事象と原因、対処法をメモしておきます。 環境環境は以下の通りです。Vagrant, VirtualBox, AnsibleすべてをHomebrewでインストールしています。結果からいうとVirtualBoxやAnsibleは直接関係ありませんでしたが、一応、バージョン情報を示しておきます。 ソフトウェアバージョン
Vagrant 1.8 で、ansible_local という新しいプロビジョナが追加されました。 これは、Ansible をゲスト(VM)側にインストールして、ローカルコネクションで VM 内で実行するものです。これは、まさに待ち望んでいた機能ので紹介します。 Vagrant + Ansible で気を付けること 以前から、Vagrant + Ansible の組み合わせでローカルの開発環境を作るなら、ホスト側に Ansible を入れるのではなく、ゲスト(VM)側に Ansible を入れる方が良いと考えていました。勉強会などでも良く話していたのでお聞きになった方もいるかと思います :) ホスト側に Ansible を入れない理由は、3 つあります。 まず、ホストに Ansible をインストールする手間が増える点です。Vagrant と Virtualbox のインストール(あとコー
インフラ自動化ツール「Ansible 2.0」正式版がリリース。リファクタリングによるアーキテクチャの整理、Block文や動的なIncludeなどの新機能 Ansibleは昨年10月にRed Hatが買収しており、Ansible 2.0は買収後初の(そしてAnsibleにとっても初めての)メジャーバージョンアップです。 参考:Red HatがAnsibleを買収した理由、同社クラウドマネジメント戦略担当が説明 Ansible 2.0では大規模なコードのリファクタリングが行われたことにより内部アーキテクチャが整理され、それに伴って新しい機能がいくつか追加されています。 Task Blocksと動的Include 1つ目の新機能としてあげられていたのは「Task Blocks」です。タスク内でBlock文を用いて処理をまとめることができます。 Blockは、Pythonやほかの言語が備えている
After a year of work, we are extremely proud to announce that Ansible 2.0 ("Over the Hills and Far Away") has been released and is now generally available. This is by far one of the most ambitious Ansible releases to date, and it reflects an enormous amount of work by the community, which continues to amaze me. Approximately 300 users have contributed code to what has been known as “v2” for some t
今回はAnsibleを本格運用した際のイメージを掴むためにAnsibleのベストプラクティスを参考に実際に試してみたいと思います。 実践のお題はWordPressとします。WordPressのセットアップを通してベストプラクティスのイメージを掴んでいただければと思います。 準備 ローカルマシンに作業ディレクトリを作り、その中でAnsibleのベストプラクティスに則ったプレイブックを作っていきます。MacもしくはLinuxなどで試してみてください。 $ mkdir try-ansible-best-practices $ cd try-ansible-best-practices ウェブサーバとDBサーバを別個に立てますので、さくらのクラウドでサーバを二台立てておきます。OSはCentOS 6.6を利用します。サーバ作成時にrootでのsshの接続に必要となる公開鍵も忘れずに登録してください
徹底比較!HA Kubernetes ClusterにおけるControl Plane LoadBalancerの選択肢
現時点(1.8.4)では、AnsibleはControl MachineとしてWindowsをサポートしていないが、ブログRunning Vagrant with Ansible Provisioning on Windows等を参考にセットアップしてみたので手順をまとめておく。 前半は純粋にWindows(Cygwin)でAnsibleを使う設定になっていてVagrantとは無関係に使用できる。 なお、末尾の回避策に記載しているが未解決の問題(秘密鍵のパーミションが緩過ぎると言われて蹴られてしまう)があり、一部強引にAnsibleのソースコードを書き換えて回避している。 #環境 Windows 8.1 Pro Cygwin Vagrant 1.7.2 Ansible 1.8.4 #Cygwinの環境を整える Cygwinの下記のパッケージを追加する(通常のCygwin Setupを使用)
ゴチャゴチャいろいろやったのを記憶を頼りにまとめてみます。 vagrantをインストール これは本家サイトからmsiパッケージをダウンロードしてインストールすれば良い ついでにvagrant-ansibleプラグインもインストール ansibleをインストール cinst python cinst pip pip install ansible は何となく成功するものの、ansible起動でなんかのモジュールが見つかりませんとか言われてコケる。 cygwinでおkという記事を見たのでその通りに方針転換。記事通りおk。 playbook.ymlとかinventoryファイルを作る まずは超簡単にplaybook.yml - hosts: vagrant tasks: - yum: name=/common/files/jdk-7u40-linux-x64.rpm state=present
VirtualBoxにCentOSをとりあえずインストール の続き Ansibleをとりあえず試してみる。 Ansibleのインストール MacにAsibleをインストールする。 $ brew update $ brew install ansible 入った。 $ ansible --version ansible 1.7.2 Ansibleを試す 今回使用するVirtualBoxのIPアドレスは「192.168.56.101」 hostsのファイルを作成する。 $ vi hosts 192.168.56.101 コマンドを実行してみる。 しかし、エラーが出る。 $ ansible all -i hosts -u hoge -a "cat /etc/redhat-release" 192.168.56.101 | FAILED => SSH encountered an unknown
(macosx10.9, ansible 1.9.1, Vagrant 1.7.2) seizans さんの 『Ansible コトハジメ』 がVagrant などのバージョン差異によりそのままでは動かないようなので、若干修正を加えて実行できるようにしてみる。 Vagrant, Ansible はインストール済みの前提 vagrant box を用意する A list of base boxes for Vagrant - Vagrantbox.es Official Ubuntu 14.10 daily Cloud Image amd64 何となくこれ使ってみる $ mkdir ansible-sample $ cd ansible-sample $ vagrant init ubuntu1410 https://oss-binaries.phusionpassenger.com/vag
とても初歩的なことでハマってしまったので、今後忘れないためにもしっかり書いておく。 目指せ30分以内編集 今回の事象 ハマったこと Ansibleでtomcatを起動するスクリプトを実行。 okの確認、pidファイルの作成も確認できていたが、ログインしてみると起動できていなかった。 ログインしたサーバーで起動スクリプトを叩くと起動できる。 debugで出力した結果も、環境変数が指定できていない等の問題はなさそう。 原因 起動コマンドに"&"をつけてバックグラウンドで起動していたが、 sshのコネクションが切れたため、プロセスも終了していた。 Ansibleはsshでコネクションを張り、命令を実行という基本的な流れを忘れていた/(^o^)\ 解決策 nohupつけて起動 もう少し詳しく 実際にはただこれだけの無知なお話ですが、流れを詳細に。 実行命令 AnsibleのPlaybook内で以下
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く