Ansible的安装和部署

目录

1.Ansible的安装

2.构建Ansible清单 

直接书写受管主机名或ip

设定受管主机的组[组名称]

主机规格的范围化操作

指定其他清单文件

ansible命令指定清单的正则表达式

3.Ansible配置文件参数详解

配置文件的分类与优先级

常用配置参数

4.构建用户级Ansible操作环境


环境配置

主控机    ansible1    192.168.81.10
受控机    ansible2    192.168.81.11
               ansible3    192.168.81.12

1.Ansible的安装

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
yum install ansible -y

ansible的基本信息

/etc/ansible/ansible.conf        //全局配置文件,默认很少修改
/etc/ansible/hosts            //全局主机清单清单文件

2.构建Ansible清单 

清单就是 ansible 控制主机的列表

直接书写受管主机名或ip

每行一个

Ansible的安装和部署_第1张图片

设定受管主机的组[组名称]

清单查看
ansible 清单中组名称 [-i 清单文件] --list-hosts
ansible ungrouped --list-hosts        //列出在Ansible inventory文件中未分组的所有主机
ansible all --list-hosts

单层清单

Ansible的安装和部署_第2张图片

嵌套清单

Ansible的安装和部署_第3张图片

主机规格的范围化操作

通过指定主机名称或 IP 的范围可以简化 Ansible 主机清单

指定其他清单文件

如上

ansible命令指定清单的正则表达式

*                       //所有
                        //192.168.81.*
                        //westos*

:                       //逻辑或
                        //westos1:linux
                        //#172.25.254.100:172.25.254.200

:&                      //逻辑与
                        //westos1:&linux
                        //主机即在westos1清单也在linux清单中

:!                      //逻辑非
                        //westos1:!linux
                        //在westos1中不在linux中

~                       //以关键字开头

~(str1|str2)            //以条件1或者条件2开头

Ansible的安装和部署_第4张图片

3.Ansible配置文件参数详解

ansible 清单中组名称 -m 模块 -u remote_user

配置文件的分类与优先级

/etc/ansible/ansible.cfg
基本配置文件 找不到其他配置文件此文件生效
~/.ansible.cfg
用户当前目录中没有 ansible.cfg 此文件生效
./ansible.cfg
优先级最高

常用配置参数

[default]
基本信息设定
inventory=
指定清单路径
remote_user=
在受管主机上登陆的用户名称 未指定使用当前用户
ask_pass=
是否提示输入 SSH 密码 如果公钥登陆设定为 false
library=
库文件存放目录
local_tmp=
本机临时命令执行目录
remote_tmp=
远程主机临时 py 命令文件存放目录
forks=
默认并发数量
host_key_checking=
第一次连接受管主机时是否要输入yes建立host_key
sudo_user=
默认 sudo 用户
ask_sudo_pass=
每次在受控主机执行 ansible 命令时是否询问 sudo 密码
module_name=
默认模块 默认使用 command 可以修改为 shell
log_path=
日志文件路径
[privilege_escalation]
身份信息设定
become=
连接后是否自动切换用户
become_method=
设定切换用户的方式 通常用 sudo
become_user=
在受管主机中切换到的用户 通常为 root
become_ask_pass
是否需要为 become_method 提示输入密码 默认为 false

4.构建用户级Ansible操作环境

cp id_rsa.pub authorized_keys //复制公钥

创建目录

ansible all -m file -a 'path=/root/.ssh state=directory owner=root group=root mode=0700' -k

Ansible的安装和部署_第5张图片

复制公钥

ansible all -m copy -a 'dest=/root/.ssh/authorized_keys src=/rt/.ssh/authorized_keys owner=root group=root mode=0600' -k

Ansible的安装和部署_第6张图片

测试

Ansible的安装和部署_第7张图片

创建用户,修改密码,向所有的目标主机添加一个sudoer,让用户devops拥有root权限而不需要输入密码

ansible all -m shell -a 'useradd devops'
ansible all -m shell -a 'echo shg12345 | passwd --stdin devops'
ansible all -m shell -a 'echo "devops ALL=(ALL) NOPASSWD: ALL >> /etc/sudoers "'

Ansible的安装和部署_第8张图片

向devops复制公钥

ansible all -m copy -a 'src=/root/.ssh/authorized_keys dest=/home/devops/.ssh owner=devops group=devops mode=0600'

Ansible的安装和部署_第9张图片

修改权限

ansible all -m file -a 'path=/root/.ssh owner=devops group=devs mode=0700'

Ansible的安装和部署_第10张图片

目录

ansible all -m file -a 'path=/home/devops/.ssh state=directory owner=devops group=devops mode=0700' -k

Ansible的安装和部署_第11张图片

ansible all -m copy -a 'src=/root/.ssh/authorized_keys dest=/home/devops/.ssh owner=devops group=devops mode=0600' -k

Ansible的安装和部署_第12张图片

su - devpos
cp /root/ansible/ansible.cfg /home/devpos/.ansible

Ansible的安装和部署_第13张图片

你可能感兴趣的:(ansible)