【基础】使用Ansible连接AWS EC2

1. 使用Ansible ad-hoc的方式连接AWS EC2

需求:使用ansible连接上EC2执行ping

前置条件:申请AWS账号,根据相关帮助文档创建免费的EC2实例(linux)

1) 第一种配置方式

hosts文件中内容:

[local]
127.0.0.1

[aws]
ec2-user@54.88.1.1

执行

ansible aws -i hosts --private-key ../private/aws-ec2-a.pem -m ping


2) 第二种配置方式:

hosts文件中内容:

[local]
127.0.0.1

[aws]
54.88.174.221


执行

ansible aws -i hosts --private-key ../private/aws-ec2-a.pem -m ping -u ec2-user

3)第三种配置方式

hosts文件内容:

[local]
127.0.0.1

[aws]
54.88.174.221    ansible_ssh_private_key_file=../private/aws-ec2-wendll2.pem
54.88.174.221    ansible_ssh_user=ec2-user

执行

ansible aws -i hosts -m ping


三种配置都能够执行成功。

这里也可以使用sudo来使用root用户执行ping命令

ansible aws -i hosts --private-key ../private/aws-ec2-a.pem -m ping -u ec2-user -s -U root -K


-u为ssh连接时使用的用户。

-s表示用sudo,也可以使用--sudo

-U表示ssh连接后sudo的用户,也可以使用--sudo-user=SUDO_USER

-K表示可以交互的输入密码,也可以使用--ask-sudo-pass

如果sudo时只需要是默认超级用户root且不用输入密码,则只需要在ec2-user后加-s即可


还可以使用su来使用root用户执行ping命令

ansible aws -i hosts --private-key ../private/aws-ec2-a.pem -m ping -u ec2-user -S -R root --ask-su-pass
-S表示为su,也可以使用--su

-R表示su用户,也可以使用--su-user=SU_USER

--ask-su-pass表示交互输入密码


上面使用的是ping模块。也可以使用如下方式来执行shell命令

ansible aws -i hosts --private-key ../private/aws-ec2-a.pem -a "/bin/echo hello" -u ec2-user

这里默认使用模块为command模块


2. 使用Ansible Playbook的方式

需求:使用Ansible Playbook在EC2上创建用户

Hosts文件内容:

[local]
127.0.0.1

[aws]
54.88.174.221    ansible_ssh_private_key_file=../private/aws-ec2-wendll2.pem
54.88.174.221    ansible_ssh_user=ec2-user

create_user.yml文件内容

---
- name: create user
  hosts: aws
  user: root
  gather_facts: false

  vars:
  - user: "wendll"

  tasks:
  - name: create {{ user }} on aws
    user: name="{{ user }}"

执行

ansible-playbook -i hosts -s create_user.yml


需求:将本地文件拷贝至EC2中

在create_user.yml文件的tasks中增加:

  - name: Copy ansible inventory file to client
    copy: src=template/HelloWorld.java dest=/home/ec2-user
            owner=root group=root mode=0644

执行

ansible-playbook -i hosts -s create_user.yml


yml文件task中的user,copy都为ansible提供的模块名。常用的还有command, template,notify,service模块。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值