Centos搭建Ansible

2022-11-21 19:39:47 浏览数 (1)

安装epel源

代码语言:javascript复制
yum -y install epel-release

安装ansible

代码语言:javascript复制
yum -y install ansible

查看版本

代码语言:javascript复制
[root@localhost ~]# ansible --version
ansible 2.9.16
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

添加ansible管理主机清单

代码语言:javascript复制
vim /etc/ansible/hosts

使用playbook给两台主机安装nginx

  • 实验环境

IP

备注

192.168.1.10

host1 安装ansible

192.168.1.20

host2

两台机器做免密登录 host1

代码语言:javascript复制
[root@host1 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:NzQ28djY97QKrWDuoD8YCGhG1gur2aXyMwK9qLWD5ds root@host1
The key's randomart image is:
 ---[RSA 2048]---- 
|  .       .      |
|   .       B     |
|  o .     B   . .|
|.= ..    o o.. o.|
|  .o.   Soo. . ..|
|= =. .  o...o .  |
|.B..  o. . . .   |
| .Bo ...o        |
|o.o=E.....       |
 ----[SHA256]----- 
[root@host1 ~]# ssh-copy-id -i 192.168.1.10
[root@host1 ~]# ssh-copy-id -i 192.168.1.20

修改ansible的hosts文件

代码语言:javascript复制
[root@host1 ~]# vi /etc/ansible/hosts
末尾添加
[test]
192.168.1.10
192.168.1.20

编写yaml文件

代码语言:javascript复制
[root@host1 ~]# cat nginx.yml 
- hosts: test
  remote_user: root
  tasks:
    - name: 安装yum源
      shell: yum -y install epel-release
    - name: install nginx
      shell: yum -y install nginx

检查yaml文件的语法

代码语言:javascript复制
[root@host1 ~]# ansible-playbook --syntax-check nginx.yml 

playbook: nginx.yml

运行yaml文件

代码语言:javascript复制
[root@host1 ~]# ansible-playbook  nginx.yml 

PLAY [test] ********************************************************************

TASK [Gathering Facts] *********************************************************
ok: [192.168.1.20]
ok: [192.168.1.10]

TASK [安装yum源] ******************************************************************
[WARNING]: Consider using the yum module rather than running 'yum'.  If you
need to use command because yum is insufficient you can add 'warn: false' to
this command task or set 'command_warnings=False' in ansible.cfg to get rid of
this message.
changed: [192.168.1.20]
changed: [192.168.1.10]

TASK [install nginx] ***********************************************************
changed: [192.168.1.10]
changed: [192.168.1.20]

PLAY RECAP *********************************************************************
192.168.1.10               : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.1.20               : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  
[WARNING]警告选项不用管

测试是否能启动并访问

代码语言:javascript复制
[root@host1 ~]# systemctl start nginx
[root@host2 ~]# systemctl start nginx
  • host1
  • host2

0 人点赞