## inventory
inventor是描述主机的文件。
**localhost**会被ansible自动添加到inventory中,代表本机。
>[info] 在执行的时候会通过本机而不是SSH。
## inventory行为参数
~~~
名称 默认值 描述
------------------------------------------------------------------------
ansible_ssh_host none 主机的名字
ansible_ssh_port 22 ssh端口
ansible_ssh_user root ssh登录使用的用户名
ansible_ssh_pass none ssh认证使用的密码
ansible_ssh_private_key_file none ssh认证使用的私钥
ansible_connection smart Ansible使用何种连接模式
ansible_shell_type /bin/sh 命令行所使用的shell
ansible_python_type /usr/bin/python 命令行所使用的shell
~~~
### 改变行为参数的默认值
~~~
invetory行为参数 ansible.cfg选项
-------------------------------------------------
ansible_ssh_port remote_port
ansible_ssh_user remote_user
ansible_ssh_private_key_file private_key_file
ansible_shell_type executable
ansible_python_type /usr/bin/python
~~~
## 群组
ansible自动定义了一个群组叫“all”,包括in ventory中的所有主机。
### 群组嵌套
注意这里的**children**
~~~
[django:children]
web
task
~~~
## 主机变量
在inventory中定义主机时,同时定义的变量
~~~
vagrant1 ansible_ssh_port=222
~~~
### 别名和端口
~~~
127.0.0.1:2222
128.192.168.1.12:2222
~~~
## 组内变量
在inventory中定义`主机组`时,同时定义的变量
~~~
[all:vars]
ntp_sever=cn.ntp.pool.org
[productions:vars]
db_user=mysql
db_password=mysql@123
~~~
## 群组的与或非
~~~yaml
webservers:&staging 与
webservers:staging 或
webservers:!staging 非
~~~
- 目录
- 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