## 安装
~~~
yum install -y ansible
~~~
在centos7上会安装以下依赖
~~~
PyYAML
libtomcrypt
libtommath
libyaml
python-babel
python-backports
python-backports-ssl_match_hostname
python-httplib2
python-jinja2
python-keyczar
python-markupsafe
python-setuptools
python-six
python2-crypto
python2-ecdsa
python2-paramiko
python2-pyasn1
sshpass
~~~
## 认证
### 生成密钥
~~~
ssh-keygen -t rsa
# 或者,免输入密码和私钥文件路径
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
~~~
### 复制密钥到客户机
~~~
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.101.175
~~~
### 认证测试
登录成功即密钥测试通过
~~~
ssh node2.test.com
~~~
或者将主机加入ansible的hosts后,使用ping模块进行测试
~~~
ansible test -m ping
192.168.101.175 | SUCCESS => {
"changed": false,
"ping": "pong"
}
~~~
### 查看文档
~~~
ansible-doc -l 列出所有模块
ansible-doc -s 列出某一模块的帮助
~~~
### ansible命令格式
~~~
ansible <host-pattern> [-m module_name] [-a args] [options]
-C, --check # 只是测试将会执行的操作,不进行任何实质性的操作
-f, --forks=NUM # 并发数
-i, --inventory=PATH # 主机列表文件
-T, --timeout=SECONDS # 超时时间
~~~
>[info] all 代表所有在主机列表中的主机
- 目录
- ansible基础
- ansible简介
- ansible安装和测试
- ansible配置文件
- 常用命令
- yaml在ansible中的用法
- inventory
- 变量与facts
- when语句
- handler模块
- 大杂烩
- ansible模块
- assert 模块
- copy模块
- cron模块
- debug模块
- django_manage模块
- file模块
- filesystem模块
- git模块
- hostname模块
- lineinfile模块
- mount模块
- mysql_user模块
- mysql_db模块
- pip模块
- selinux
- setup模块
- shell 和 command 模块
- stat模块
- supervisorctl
- systemd
- timezone
- unarchive模块
- user模块
- wait_for
- yum和service模块
- 其他模块或者方法
- setup模块
- url模块
- slack 模块
- pause 模块
- 其他
- 报错处理
- playbooks
- 复杂的playbook
- 循环
- roles
- YAML
- jinja2