1 copy 复制文件到远端并且备份
1 | --- |
2 file 建立文件或者文件夹
1 | --- |
3 lineinfile 替换文件内容
3.1 如果文件存在
1 | --- |
3.2 文件不存在 (使用present和create, 变量用引号和大括号 ““)
1 | --- |
4 shell 命令使用
1 | --- |
5 stat 检查文件是否存在
1 | --- |
6 setup 获取系统信息
1 | --- |
7 setup 配合filter获取主机信息
1 | [root@workstation ansible]# ansible servera -m setup -a "filter=ansible_default_ipv4" |
8 Template使用 (建立.j2的template, )
8.1 建立 template 档案
1 | # vim playbooks/template_hello.j2 |
8.2 导入template并使用
1 | --- |
8.3 直接更改参数
1 | # ansible-playbook playbooks/template_hello.yml -e "sam_veriable=good" |
9 loop的使用
1 | --- |
10 vault的使用
10.1 建立加密文件. 这要求输入密码
1 | # ansible-vault create playbooks/crypttests.yml |
10.2 编辑加密文件. 要求输入密码
1 | # ansible-vault edit playbooks/crypttests.yml |
10.3 更改密码.
1 | # ansible-vault rekey playbooks/crypttests.yml |
10.4 对文件加密
1 | # ansible-vault encrypt playbooks/crypttests.yml |
10.5 对文件解密
1 | # ansible-vault decrypt playbooks/crypttests.yml |
10.6 查看文件
1 | # ansible-vault view playbooks/crypt.yml |
11 非0状态继续执行, 使用ignore_errors
1 | --- |
12 notify使用
1 | --- |
13 tag 使用
13.1 编辑
1 | --- |
13.2 执行
1 | # ansible-playbook playbooks/mytags.yml -t production |
14 block 和rescue (block里面不能使用ignore_errors)
1 | --- |
15 when, register 条件运行
1 | --- |
16 安装role (role 是在galaxy里面使用)
16.1 编写galaxy_install.yml文件
1 | --- |
16.2 安装role (安装的路径需要ansible.cfg写明 roles_path = /home/ansible/playbooks/roles
)
1 | ansible-galaxy install -r playbooks/galaxy_install.yml |
17 配置log路径
1 | log_path= /home/ansible/logs-ansible.log |
18 when 和debug使用(加速可以停用 gather_facts: no)
1 | --- |
19 如何使用ignore_errors 和register (这两个是针对模块或者命令的,所以应该与之平齐)
1 | --- |
20 gather_facts 注意事项(不要设置为no 如果需要setup模块的变量如 ansible_hostname)
1 | gather_facts: yes |
21 创建LVM
1 | # pvcreate /dev/vda2 |
22 改password
1 | [root@workstation ansible]# ansible-vault rekey --ask-vault-pass playbook/crypt.yml |
23 修改command shell 返回值
1 | tasks: |
24 ansible 安装galaxy role
24.1 从galaxy直接安装
1 | - src: yatesr.timezone |
24.2 从指定路径上面获取
1 | - src: https://github.com/bennojoy/nginx |
24.3 从指定路径安装并安装为指定名字
1 | - src: https://github.com/bennojoy/nginx |
25 使用 rhsm_repository 模块
1 | - name: Enable a RHSM repository |
26 使用 redhat_subscription 模块注册系统,并加入对应的pool
1 | - name: register RHEL |