Bootstrap

Jenkins-Ansible 插件相关用法

1. ansible-hoc 单条命令的实现

调用 shell 模块,构建步骤填写如下

运行任务,查看执行结果是否正确返回 webservers 主机的 hostname

inventory 部分也可以直接选择 Inline content 选项填写文件内容

调用 file 模块,构建步骤填写如下 

运行任务,在 webservers 主机上查看 test.log 文件是否生成 

2. ansible-playbook yml文件的实现

获取目标主机的的 ip,并将返回的结果存储在 result 变量中

[root@jenkins ~]#vim /data/jenkins/test.yml 

- hosts: webservers
  remote_user: root
  tasks:
  - name: excute cmd
    shell:
     cmd: hostname -I
    register: result

  - name: show result
    debug:
     msg: "{{ result }}"

构建步骤填写如下

3. 实现多环境部署

yml 文件如下

[root@jenkins ansible]#vim /data/jenkins/test.yml 

- hosts: webservers
  remote_user: root
  tasks:
  - name: excute cmd
    shell:
     cmd: hostname -I
    register: result

  - name: show result
    debug:
     msg: "{{ result }}"

hosts 文件如下 

[root@jenkins ansible]#vim test-hosts 

[webservers]
10.0.0.202 ansible_ssh_user=root

10.0.0.203 ansible_ssh_user=root

[root@jenkins ansible]#vim product-hosts 

[webservers]
10.0.0.205 ansible_ssh_user=root

10.0.0.206 ansible_ssh_user=root

选择参数,定义变量名称,并添加不同环境 hosts 选项 

构建步骤填写如下,host list 使用选项名称使用 $ 符号引用变量

4. 实现 ansible-playbook 参数化

yml 文件如下

[root@jenkins ansible]#vim /data/jenkins/test.yml 

- hosts: "{{ ansible_hosts }}"
  remote_user: root

  tasks:
  - name: excute cmd
    shell:
     cmd: hostname -I
    register: result

  - name: show result
    debug:
     msg: "{{ result }}"

hosts 文件如下 

[root@jenkins ansible]#vim hosts-test 

[webservers]
10.0.0.202 ansible_ssh_user=root

[appservers]
10.0.0.203 ansible_ssh_user=root

[root@jenkins ansible]#vim hosts-product

[webservers]
10.0.0.205 ansible_ssh_user=root

[appservers]
10.0.0.206 ansible_ssh_user=root

添加第一个选项参数

添加第二个选项参数 

构建步骤填写如下 

高级选项填写如下,key 是 ansible host 文件中的 hosts 变量,value 选项参数名称用 ${} 符号引用

;