目录
一、ansible
1.有网环境
2.无网环境
3.配置文件
4.主机清单
二、常用命令
三、ansible模块
1.command ---- 远程主机执行命令
2.shell 支持shell特性的command
3.script ---- 运行shell脚本
4.copy ---- 复制文件到远程主机
5.fetch ---- 从主机提取文件到主控端
6.file 设置文件属性
7.unarchive ---- 解压缩
8.archive ---- 压缩
9.yum ---- 软件包管理
10.corn ---- 定时任务
11.service ---- 管理服务
12.user ---- 管理用户
13.group ---- 管理用户组
14.lineinfile ---- 替换
15.replace ---- 替换
16.setup ---- 收集主机信息
四、playbook
五、roles
一、ansible
1.有网环境
yum -y install epel-release && yum -y install ansible
ansible --version
2.无网环境
yum install epel-release --downloadonly --downloaddir=/data/ansible
yum -y install epel-release
yum install ansible --downloadonly --downloaddir=/data/ansible
yum -y install epel*.rpm && yum -y install *.rpm
3.配置文件
ANSIBLE_CFG:首先,Ansible命令会先检查环境变量,及这个环境变量将指向的配置文件
./ansible.cfg:其次,将会检查当前目录下的ansible.cfg配置文件
~/.ansible.cfg:再次,将会检查当前用户home目录下的.ansible.cfg配置文件
/etc/ansible/ansible.cfg:最后,将会检查在安装Ansible时自动生产的配置文件
配置项 |
说明 |
默认值 |
inventory |
ansible inventory文件路径 |
/etc/ansible/hosts |
library |
ansible模块文件路径 |
/usr/share/my_modules/ |
remote_tmp |
ansible远程主机脚本临时存放目录 |
~/.ansible/tmp |
local_tmp |
ansible管理节点脚本临时存放目录 |
~/.ansible/tmp |
forks |
ansible执行并发数 |
5 |
poll_interval |
ansible异步任务查询间隔 |
15 |
sudo_user |
ansible sudo用户 |
root |
ask_sudo_pass |
运行ansible是否提示输入sudo密码 |
True |
ask_pass |
运行ansible是否提示输入密码 |
True |
transport |
ansible远程传输模式 |
smart |
remote_port |
远程主机SSH端口 |
22 |
module_lang |
ansible模块运行默认语言环境 |
C |
gathering |
facts信息收集开关定义 |
smart |
roles_path |
ansible role存放路径 |
/etc/ansible/roles |
timeout |
ansible SSH连接超时时间 |
10 |
remote_user |
ansible远程认证用户 |
root |
log_path |
ansible日志记录文件 |
/var/log/ansible.log |
module_name |
ansible默认执行模块 |
command |
executable |
ansible命令执行shell |
/bin/sh |
hash_behaviour |
ansible主机变量重复处理方式 |
replace |
private_role_vars |
默认情况下,角色中的变量将在全局变量范围中可见。 为了防止这种情况,可以启用以下选项,只有tasks的任务和handlers得任务可以看到角色变量 |
yes |
vault_password_file |
指定vault密码文件路径 |
无 |
ansible_managed |
定义的一个Jinja2变量,可以插入到Ansible配置模版系统生成的文件中 |
Ansible managed |
display_skipped_hosts |
开启显示跳过的主机 |
True |
error_on_undefined_vars |
开启错误,或者没有定义的变量 |
False |
action_plugins |
ansible action插件路径 |
无 |
cache_plugins |
ansible cache插件路径 |
无 |
callback_plugins |
ansible callback插件路径 |
无 |
connection_plugins |
ansible connection插件路径 |
无 |
lookup_plugins |
ansible lookup插件路径 |
无 |
inventory_plugins |
ansible inventory插件路径 |
无 |
vars_plugins |
ansible vars插件路径 |
无 |
filter_plugins |
ansible filter插件路径 |
无 |
terminal_plugins |
ansible terminal插件路径 |
无 |
strategy_plugins |
ansible strategy插件路径 |
无 |
fact_caching |
定义ansible facts缓存方式 |
memory |
fact_caching_connection |
定义ansible facts缓存路径 |
无 |
4.主机清单
/etc/ansible/hosts
配置项 |
说明 |
ansible_ssh_host |
目标主机地址 |
ansible_ssh_port |
目标主机端口,默认22 |
ansible_ssh_user |
目标主机用户 |
ansible_ssh_pass |
目标主机ssh密码 |
ansible_sudo_pass |
sudo密码 |
ansible_sudo_exe |
sudo 命令路径 |
ansible_connection |
与主机的连接类型,比如:local,ssh或者paramiko |
ansible_ssh_private_key_file |
私钥地址 |
ansible_shell_type |
目标系统的shell类型 |
ansible_python_interpreter |
python版本 |
vi /etc/ansible/hosts
[client1]
网络地址
[client2]
网络地址 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass="xxxx"
直接显示密码不安全
[client3]
网络地址 ansible_ssh_port=22
二、常用命令
参数 |
说明 |
host-pattern |
主机或者主机组 |
-f FORKS |
并行任务数,默认为5 |
-m MODULE_NAME |
执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数 |
-a MODULE_ARGS |
模块的参数 |
-k,--ask-pass |
ask for SSH password。登录密码,提示输入SSH密码而不是假设基于密钥的验证 |
--ask-su-pass |
ask for su password。su切换密码</ |