0%

ansible 自动化运维

自动化运维

ansible

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 安装依赖
yum install -y epel-release

# 安装ansible
yum install -y ansible

# 迁移目录
mkdir -p /data/service/ansible
rsync -av /etc/ansible /data/service/
mv /etc/ansible{,_bak}
ln -s /data/service/ansible /etc/ansible

# 检测语法
ansible-playbook --syntax-check /path/to/playbook.yaml
# 测试运行
ansible-playbook -C /path/to/playbook.yaml
# 运行
ansible-playbook /path/to/playbook.yaml

# 测试主机
ansible foxhello -i hosts -m ping

yml示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
### roicloud-user.yml 

---
- hosts: roicloud-release
tasks:
- name: backup jar |
shell: |
cd /root/roicloud/user/target
pwd
now=$(date '+%Y%m%d%H%M%S')
mv roi-auth.jar roi-auth.jar_bak$now
ls -lrt

- name: "复制主机上的文件到目标服务器上"
copy:
src: "{{baseDir}}/roi-auth/target/roi-auth-0.0.1-SNAPSHOT.jar"
dest: "/root/roicloud/user/target/roi-auth.jar"

- name: deploy app |
shell: |
cd /root/roicloud/user/bin
pwd
ls -lrt
sh shutdown.sh
sleep 5
sh startUp.sh

/etc/ansible/hosts 示例

1
2
3
4
5
6
7
8
[roicloud-db]
118.31.246.133 ansible_ssh_private_key_file=~/.ssh/id_rsa-andy

[roicloud-test]
81.69.252.30 ansible_ssh_private_key_file=~/.ssh/id_rsa

[roicloud-release]
124.220.190.16 ansible_ssh_private_key_file=~/.ssh/id_rsa

jenkins job示例

1
ansible-playbook /root/playbook-yml/roicloud-user.yml  --extra-vars "baseDir=${WORKSPACE}" 

rsync

scp

参考

  1. ansible 安装
  2. ansible 相关命令