超级ansible入门 / ansible的初学者指南
初学者的Ansible指南/适合初学者的Ansible入门指南
Ansible的概述和本文的目标。
Ansible是一种用于自动化服务器配置的工具(也可用于部署)。本次旨在介绍Ansible的引入以及后续的扩展,并提供相关建议。
索引
-
- 1 公式リンク
-
- 2 とりあえず触ってみるためのHOW TO ~ httpdをインストール
-
- 3 さらなる理解のためのさわり
-
- 4 TOPIC
-
- 5 ansible commands
- 6 どの程度理解してるかを図るために・・・
1 需要一个中文选项
官方网站
文件
先来试试如何安装 httpd 的 HOW TO。
簡単なansibleの使い方をhttpdをインストールする事で
確認してみます。
作为前提条件
步骤一
(A) クライアント(centos6)側には ansible + sshクライアント
(B) ホストサーバー側(centos6)には python + sshサーバー
が揃ってればOK
-ansible インストール(A)
yum install -y epel-release
yum install -y ansible
-openssh-server (B)
-openssh-client (A)
-python + 必要に応じてのモジュールの追加(yum install MySQL-pythonでmysqlドライバーのインストとか)
一応今回は両方ともdocker hubからオフィシャルのcentosイメージで、ローカルに起動しています。
host側のip,portは 192.168.99.100:32786 になってます。
2-2 执行ansible
/etc/ansible内で作業します。
dockerクライアントとの共有をしているフォルダ(ここではhome)内で実行でも構わないと言いたいが、docker経由だと
ファイルの権限がftpでrootに変えたりできないので素直にetc/ansible内で
やる方がいいみたい。 (cp ../../home/***.yml /)
*ansibleはhostsの権限次第でエラーになるので以下を参照
http://www.lnc.jp/2015/03/23/2317.html
步骤2-2-1:编辑/etc/ansible/hosts文件。
进入/etc/ansible/目录,用vi编辑hosts文件。
[test-servers]
192.168.99.100:32786
IP地址和端口根据环境自行调整。
使用Windows操作系统进行以下步骤2-2-2,创建yml文件(在CentOS操作系统中同样也可以进行,没有问题)
首先,创建一个安装http的文件。
- hosts: test-server
tasks:
- name: install httpd
yum: name=httpd disable_gpg_check=no state=installed
※ yum install -y httpdの -yオプションの代わりに disable_gpg_check=no
※ yml形式なのでインデントには注意しましょう。
※そのまま /etc/ansible/ の中で作る場合は
vi simple.yml ではじめてください。
步骤3:执行Ansible
第3步-1:将同期文件夹中home目录下的yml文件复制到/etc/ansible中。
cp ../../home/simple-playbook.yml /etc/ansible/
步骤3-2:执行Ansible
ansible-playbook -i hosts simple.yml –ask-pass
※ --ask-pass はホスト側に鍵登録されてる場合は必要ありません。
为了进一步理解
Ansible勉強会youtube
動画での紹介。前半部分だけでも概要がつかめます。
Qiita Ansible advent-calendar
一通り読んでみるのも
★ 推荐
– 如果是 Ansible 初学者,首先可以尝试从 Ansible Galaxy 开始
ansibleはymlファイル単体で動きますが、ベストプラクティスというおススメの構成があって
- inventory(hostsファイル)
- ansible-playbook(ymlファイル)
- Role
- handler
・・・
などの理解、利用をすると、サーバー構成を自動化したり、大量のサーバーに処理する助けとなります。
4个主题
主题索引
-
- 4-1 やってはいけない・・・・? shellでごり押し
-
- 4-2 centos6に php5.5をインストールするplaybookサンプル
-
- 4-3 Playbook 実行時に任意の値を指定する
-
- 4-4 ansibleでホスト側にユーザー登録、鍵登録
-
- 4-5 ansiblenのツボ
- 4-6 CentOSにRedmineを自動インストールするためのAnsibleプレイブック
在Shell中强制执行,这是不可以的吗?
なにげに
name: shellでごり押し gitインストール
shell: yum install -y git
などshellでごり押しで書けます。
以下是在CentOS 6上安装PHP 5.5的Playbook示例。
- hosts: test-server
tasks:
- name: remove php
yum: name=php state=removed
- name: set epel repository
shell: rpm -Uvh --force http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
- name: set remi repository
shell: rpm -Uvh --force http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
- name: install php5
yum: name=php disable_gpg_check=no enablerepo=remi-php55 state=installed
centos6の場合、そのまま yum install -y php をするとphp5.3あたりがインストされます。
5.5以上をインストするために rpmを追加しています。
在执行4-3战术时,可以指定任意值。
! Point
cliオプションで --extra-vars "var1=***" を設定する事で可能に
さらに vars_promptという物を設定しておくと対話方式で引数を設定する事が可能に
var_prompt:
- name : **変数名になる{{変数名}}で使用できる*
prompt: "質問を入れる"
default: デフォルト値も設定可能
使用 Ansible 在主机上进行用户注册和密钥注册:4-4 ansible註冊主機上的使用者和金鑰註冊。
4-5岁幼儿的兴趣点
在英語困難的情况下提供帮助。
使用Ansible Playbook来自动安装Redmine在4-6 CentOS上。
中文很好。
5个ansible命令
以下是ansible命令(模块)的完整列表。
据说可以用Python等编写自己的模块,所以可能会有一些未列出的实用模块在市面上流通。
为了衡量理解程度多少…
Ansible的入門指南PDF存在这个相关连接。
學習Ansible初階
示例版本
http://tdoc.info/ansible-book/ansible-sample.pdf
如果只依靠英语还觉得不放心的话,最好还是依靠书籍来……
■ 目次
1章. はじめに
- Ansibleの特徴
- Ansibleはシンプル
- ChefやPuppetとの違い
- Ansibleは "Better Shell Script"
2章. Ansibleを使ってみよう
- インストール
- inventoryファイル
- モジュール (module)
3章. playbookを作ってみよう
- YAMLの文法
- playbookを書いてみる
- playbookの解説
- task
- handler
- よく使うモジュール
4章. 複雑なplaybookを作ってみよう
- 繰り返し -- with_items
- 出力を保存してあとで使う -- register
- 条件付き実行 -- when
- 成功するまで繰り返す -- until
- 外部情報の参照 -- lookup
- 変数を処理する -- filter
- キーボードから入力する -- vars_prompt
- 管理ホストで実行する -- local_action
- 実行するモジュールを変数で変更する -- action
- 環境変数を設定する - environment
- 失敗しても無視する - ignore_errors
- 非同期でtaskを実行する -- async
5章. 大規模なplaybookを構築してみよう
- 他のplaybookを読み込む -- include
- 推奨ディレクトリ構成 -- ベストプラクティス
- まとめて再利用 -- role
- 並列実行 -- fork
- 順々に実行する -- serial
- AWS EC2との連携
- ホストのリストを動的に作成 -- dynamic inventory
6章. コマンドラインオプションを使ってみよう
- ssh認証
- 対象ホストを制限する -- limit
- 実行するtaskを制限する -- tag
- dry-run実行 -- check
- taskを確認しながら実行 -- step
- 差分表示 -- diff
7章. 変数ファイルの暗号化 -- ansible-vault
- ansible-vaultの使い方
- 暗号化されたファイルの使い方
8章. 公開されているroleを使ってみよう -- Ansible Galaxy
- Ansible Galaxyとは
- roleの検索方法
- roleを手に入れる
- roleの使い方
9章. よくあるご質問
- 接続できない
- ControlPath too longというエラーが出る
- 実行しても途中で止まる
- inventory ファイルがなくても接続したい
- 一つのplaybookが複雑になってしまった
- python not foundというエラーが出る
- Windowsで使いたい
- ansible-playbookに変な絵が表示される
- ansibleが収集する変数を知りたい
- invalid type type 'list'と出る
- 変数を使った時に "Syntax Error" が出る
- "---" はどういう意味?
- Ansibleという名前の由来は?
10章. おわりに
付録: モジュールを自作する
- モジュールの動作
- モジュールの形式
- モジュールのサンプル
- Pythonでの便利関数
- モジュールのデバッグ
付録: Ansible plugin
- pluginの種類
- lookup plugin
- filter plugin
- callback plugin
- action plugin
- connection type plugin
- vars plugin
付録: ansible configファイル
- defaultセクション
- paramiko セクション
- ssh_connection セクション
- accelerateセクション
付録: Windows対応
- 前提環境
- 準備
- inventoryファイル
- モジュール
- 制限事項