超级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ファイル

- モジュール

- 制限事項
广告
将在 10 秒后关闭
bannerAds