我打算使用ansible来部署远程文件,因为远程位置只能用'root'写入,而不能用'root'下载本地文件,我使用以下剧本:
# in the main playbook
- hosts: master
user: ec2-user
sudo: yes
Run Code Online (Sandbox Code Playgroud)
# in role definition
# download only in the ansible master node
- local_action: get_url url={{ hadoop_mirrors|random }}/hadoop-{{ hadoop_version }}/hadoop-{{ hadoop_version }}.tar.gz dest=/opt/hadoop-{{ hadoop_version }}.tar.gz force=no
sudo: False
register: result
until: result|success
retries: 5
delay: 2
when: hadoop_type_of_node == 'master'
Run Code Online (Sandbox Code Playgroud)
但是 Ansible 似乎无法阅读该行sudo: False。当我运行这个剧本时,我仍然遇到这个错误:
TASK [ansible-role-hadoop : get_url] **************************************************************************************************
FAILED - RETRYING: ansible-role-hadoop : get_url (5 retries left).
FAILED - RETRYING: ansible-role-hadoop : get_url (4 …Run Code Online (Sandbox Code Playgroud) 我使用以下ansible脚本在azure云中创建一个vm:
---
- name: azure playbook
hosts: localhost
vars_files: ['vars.yaml']
tasks:
- name: Create VM with defaults
azure_rm_virtualmachine:
resource_group: "{{account_prefix}}_rg"
vm_size: Standard_D1
name: "{{account_prefix}}-vm1"
storage_account_name: "{{account_prefix}}store1"
network_interface_names: "{{account_prefix}}vm1eth0"
ssh_password_enabled: false
admin_username: owen
ssh_public_keys:
- { path: /home/owen/.ssh/authorized_keys,
key_data: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDH0q4pmdkJcc/JPVJui5uWMV12GsJAsDCosfUSSFZfTIx92bb9FC3hx1zU7tD1+Zw3aQW13m6ZS2T ... YnvieSbdD3v}
image:
offer: CentOS
publisher: OpenLogic
sku: '7.2'
version: latest
Run Code Online (Sandbox Code Playgroud)
但是在运行其他脚本以添加其他用户时:
---
- name: create user
hosts: my-vm1.westeurope.cloudapp.azure.com
# vars_files: ['vars.yaml']
remote_user: owen
tasks:
- name: Create User
user:
name: andrea
password: $6$rounds=656000$1AspdTb0lfOSc5yM$bAkPgHkuHwap/j6f0P88WxOdjxq3MCRO7/qgufYB.s/4t4k99wwtu/.../
group: users
shell: /bin/bash
become: true …Run Code Online (Sandbox Code Playgroud)