功能:1.临时命令: 对受控机运行单条命令。
2.playbook:单一任务的多机实现。
1.临时命令
2.单一playbook
1.临时命令
临时命令实现的前提是ansible环境已经部署好了。参看前篇.主要是ansible.cfg和inventory文件。
1.1 查看配置
ansible all --list-hosts #查看默认路径下的主机名
ansible all -i files --list-hosts #-i files 指定配置文件
ansible group -i webs --list-hosts #group -i 列举组为webs的主机名 ungroup为非组
1.2临时命令示例
a.模块 :ansible-doc -l 查看所有模块
ansible localhost -m user -a 'name=u1 uid=4000 state=present'
# 受控主机名 用户 参数 u1用户存在
b.command命令:-a参数无单引号
ansible servera -m command -a /usr/bin/hostname -o
# 查看主机名 -o以单行格式输出
1.3 受控主机用户sudo权限设置
become用前 要设置被控机用户的sudo权限。
用户设置为sudo配置。比如user1要有sudo权限,且无需密码身份验证
创建一个文件名为user1的文件,放在 /etc/sudoers.d/文件夹下 ,
内容如下:
user1 ALL=(ALL) NOPASSWD: ALL
ansible serverb -m copy -a 'content="managed by ansible" dest=/etc/motd' -u user1 --become
# 添加的内容 被更改文件 权限
2. 单一playbook
关键字 name,hosts,tasks(name下面一行为“模块”或“命令”,之后是参数)
2.1 编写site.yml示例
---
- name: Install and start Apache HTTPD
hosts: web
tasks:
- name: httpd package is present #此处缩进4个空格
yum:
name: httpd
state: present
- name: correct index.html is present
copy:
src: /home/student/files/index/html
dest: /var/www/html/index.html
- name: httpd is started
service:
name: httpd
state: started
enabled: true
2.2 检查和运行site.yml文件
ansible-playbook --syntax-check site.yml
ansible-playbook site.yml
2.3验证结果
curl serverc.lab.example.com
curl serverd.lab.example.com