# ansible

# 1.安装

ansible的安装部署 (opens new window)

离线安装 (opens new window)

# 2.资料

1.教程

自动化运维工具——ansible详解(一) (opens new window)

2.笔记

https://note.youdao.com/s/dj2j8Gv2

ansible传文件到远程copy和从远程机器拷贝文件fetch (opens new window)

ansible  test -m copy -a "src=/etc/ansible/polkit-0.112-26.el7_9.1.x86_64.rpm dest=/opt/  mode=0755" --become --become-method=su --become-user=root


ansible  test -m fetch -a "src=/opt/1.txt dest=${workspace} force=yes"
1
2
3
4

# 3.教程

1.查看主机清单

cat /etc/ansible/hosts

[test]
192.168.1.100 ansible_ssh_user=test  ansible_ssh_pass=123456  ansible_su_pass=password
192.168.1.[101:103] ansible_ssh_user=test  ansible_ssh_pass=123456 ansible_su_pass=password
1
2
3

2.参数详解

参数 用途 示例
ansible_ssh_host 定义hosts ssh 地址 ansible_ssh_host=192.169.1.100
ansible_ssh_port 定义hosts ssh 端口 ansible_ssh_port=8000
ansible_ssh_user 定义hosts ssh 认证用户 ansible_ssh_user=test
ansible_ssh_pass 定义hosts ssh 认证密码 ansible_ssh_pass=123456
ansible_sudo 定义hosts sudo 用户 ansible_sudo=www
ansible_sudo_pass 定义hosts sudo 密码 ansible_sudo_pass=password
ansible_sudo_exe 定义hosts sudo 路径 ansible_sudo_exe=/usr/bin/sudo
ansible_connection 定义 hosts连接方式 ansible_connection=local
ansible_ssh_private_key_file 定义hosts私钥 ansible_ssh_private_key_file=/root/key
ansible_ssh_shell_type 定义hosts shell类型 ansible_ssh_shell_type=bash
ansible_python_interpreter 定义hosts 任务执行python路径 ansible_python_interpreter=/usr/bin/python2.6
ansible_*_interpreter 定义hosts 其他语言解析路径 ansible_*_interpreter=/usr/bin/ruby
ansible_su_pass 定义root用户的密码 ansible_su_pass=password

3.ping命令

测试所有服务器是否与控制机网络连通

ansible all -m ping

测试分组test的服务器是否与控制机网络连通

ansible test-m ping

4.date命令

查看服务器时间

ansible test -m shell -a "date"

5.hostname命令

显示系统的主机名称

ansible test -m shell -a "hostname"

6.查询防火墙

检查防火墙状态:systemctl status firewalld

Centos 7 systemctl和防火墙firewalld命令 (opens new window)

ansible test -m shell -a "systemctl status firewalld" --become --become-method=su --become-user=root

# become

# 1.说明

​ Ansible允许你成为另一个用户,与登录到本机的用户或远程用户不同。这是使用现有的特权升级工具(privilege escalation tools)完成的,您可能已经使用或已经配置了这些工具,如sudo,su,pfexec,doas,pbrun,dzdo,ksu等。

说明:

(1)在1.9 Ansible之前,大多数情况下都允许使用sudo和有限的su来允许登录/远程用户成为不同的用户并执行任务,用第二个用户的权限创建资源。从1.9开始become代替旧的sudo / su,同时仍然向后兼容。这个新系统也使得添加诸如pbrun(Powerbroker),pfexec,dzdo(Centrify)等其他特权升级工具变得更加容易。

(2)变量和指令是独立的,即设置become_user并不是设置become。

# 2.使用

# 2.1become

使用“true”或“yes”来表示启用这个特权

如:become=true,表示打开了become开关。

# 2.2become_user

become_user=root 设置为root账户,相当于我们以普通账户登入到远程主机时,再使用su - root切换为root账户。

# 2.3become_method

become_method=su 表示用什么方式将普通账户切换到root或所需的其他账户,这里可以用su或sudo。

# 2.4become_flags

表示允许为任务或角色使用特定的标志。一个常见的用法是在shell设置为不登录时将用户更改为nobody。ansible2.2版本中增加。