# ansible
# 1.安装
ansible的安装部署 (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"
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
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版本中增加。